yum install -y epel-release 安装epel源
服务器安装:
yum -y install salt-master
安装完成修改主配置文件:
vi /etc/salt/master
修改如下:
15行 interface: 192.168.88.100 //监听master地址
215行 auto_accept: True //避免要运行salt-key来确认证书认证
416行
file_roots:
base:
552行 pillar_opts: True //开启pillar功能
529行
pillar_roots:
base:
cat /etc/salt/master | grep -v ^$ | grep -v ^# //查看对主配置文件做的更改
启动服务器:
systemctl start salt-master
systemctl enable salt-master
netstat -anpt | egrep ‘4505|4506‘
创建salt与pillar文件根目录:
mkdir /srv/salt
mkdir /srv/pillar
----------以下在被控端上操作----------
在两台上分别配置:
yum -y install salt-minion
vi /etc/salt/minion
修改配置如下:
16行 master: 192.168.88.101 //指定主控端IP
78行 id: web01.saltstack.com //指定被控端主机名
启动被控端服务
systemctl start salt-minion
在主控端测试与被控端的通信状态!
salt ‘‘ test.ping
salt ‘‘ cmd.run ‘df -h‘ //远程执行命令
salt-key //查看在 master 上已经被接受过的客户端
Saltstack几个重要的组件:
grains
grains 是在 minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等静态信息。
grains的信息并不是动态的,并不会时时变更,它只是在 minion 启动时收集到的
pillar
pillar 和 grains 不一样,是在 master 上定义的,并且是针对 minion 定义的一些信息。像一些比较重要的数据(密码)可以存在 pillar 里,还可以定义变量等。
State
他是saltstack的最核心功能,通过预先指定好的sls文件对被控主机进行管理:包/文件/网络配置/系统服务/系统用户等。
首先介绍grains
查看被控主机上grains所有值:
salt ‘web01.saltstack.com‘ grains.items
自定义 grains的方法有两种(客户端自定义配置和服务端写脚本定义):
1.客户端配置(缺点:每台都得去配置,机器多了配置起来不方便)
2.服务端写Python脚本
服务端写Python脚本:
salt-key
mkdir /srv/salt/_grains
cd /srv/salt/_grains/
vi mytest.py
插入测试脚本:
#!/usr/bin/env python
import os
def my_test():
grains = {}
grains[‘say‘] = ‘hello world‘
return grains
def my_test1():
grains = {}
with os.popen(‘free -m‘) as f:
grains[‘mem_usage‘] = f.read()
return grains
salt ‘*‘ saltutil.sync_all //同步文件
在被控端查看同步效果:
接着:
salt ‘*‘ sys.reload_modules //刷新模板
检测效果:
salt ‘‘ grains.item say
salt ‘‘ grains.item mem_usage
同时检验web01和web02上的sawp
pillar管理模板参考连接文章
配置管理安装Apache
下面进行的演示是远程通过 yum 方式安装 Apache。步骤如下:
修改配置文件
vi /etc/salt/master // 打开如下内容的注释406行
file_roots:
base:
mkdir /srv/salt
vi /srv/salt/top.sls
base:
‘*‘:
vi /srv/salt/apache.sls
apache-service:
pkg.installed:
重启服务
执行命令
并且被控端已经运行了httpd服务
网址测试:访问88.101被控端
测试成功!
原文地址:http://blog.51cto.com/13714942/2106403