salt的初步使用
salt需要配置master和minion
首先将salt的所有rpm包放到本地做一个yum源方便安装
yum源:
[salt]
name=salt
baseurl=file:///root/rhel6/
gpgcheck=0
安装:
yum install -y salt-master
yum install -y salt-minion
注:master和minion需要时间同步和解析 iptables selinux关闭
minion端只需要配置指向master端即可实现
启动,master minion master端需要认证
查看maser的minion
salt-key -L
通过minion的认证
salt-key -A #通过所有的minion --help
测试minion端是否可以连接
salt server2 test.ping #调用test模块
如果minion可以连接即可实现master端直接查看minion端信息:
salt server2 cmd.run hostname
salt server2 cmd.run df
salt server2 cmd.run 'ip addr'
lsof软件可以查看连接信息(通过监听端口的方式)
master:
lsof -i :4505
lsof -i :4506
minion:
lsof -i :随机 #需要使用查看端口命令找到 netstat -antlp
注:ZMQ 拓扑
若minion端主机名发生变化,需要删除/etc/salt/minion_id 文件 重新认证
tree命令查看拓扑图
/var/cache tree master/ #查看master或者minion端拓扑图
/etc/salt tree pki/ #查看pki/拓扑图
master:
/etc/salt/pki/master/minions
md5sum server2 #查看minion唯一信息
minion:
/etc/salt/pki/minion/
md5sum minion.pub #查看minion唯一信息,与master端相同
salt使用YAML语法写sls文件
salt使用YAML语法基本规则
- 缩进:YAML使用一个固定的缩进风格表示数据层结构关系。Salt需要每个缩进级别由两个空格组成。不要使用tabs。
冒号:Python的字典当然理所当然是简单的键值对。其他语言的用户应该知道这个数据类型叫哈希表或者关联数组。字典的keys在YAML中的表现形式是一个以冒号结尾的字符串。Values的表现形式冒号下面的每一行,用一个空格隔开: my_key: my_value 另一种选择,一个value可以通过缩进与key联接:
my_key:
my_value短横杠:想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分。
list_value_one
list_value_two
list_value_three
接下来写一个简单的sls文件,推送httpd服务
首先,开启master端的base路径,所有的sls文件都是在base路径下实现
vim /etc/salt/master
file_roots:
base:
- /srv/salt
修改完配置文件都需要重启生效
注:切忌salt的配置文件也需要使用YAML语法
mkdir /srv/salt
mkdir httpd
/srv/salt/httpd/:
vim install.sls
apache-install:
pkg.installed:
- pkgs:
- httpd
service.running:
- name: httpd
- enable: True
- reload: True
- watch:
- file: /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf: