Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。
salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.
参考:http://docs.saltstack.cn/topics/index.html
只在一台机器上安装salt-master
(1)Install epel-release rpm:
rpm -Uvh epel-release*rpm
(2)Install salt-master rpm package:
yum install salt-master
参考:https://centos.pkgs.org/6/epel-x86_64/salt-master-2015.5.10-2.el6.noarch.rpm.html
在剩下的机器上都安装salt-minion
(1)Install epel-release rpm:
rpm -Uvh epel-release*rpm
(2)Install salt-minion rpm package:
yum install salt-minion
修改master配置文件
进入vim /etc/salt/master
修改:
(1)#auto_accept: False 改成auto_accept: True
(2)#interface: 0.0.0.0 改成interface: 10.0.0.1(本机ip)
修改minion配置文件
进入vim /etc/salt/minion
修改:
(1)#master: salt 改成 master: 10.1.110.231(master的ip)
(2)#id: 也可对自己主机命名,便于区分
启动服务
master: service salt-master start或/etc/init.d/salt-master start或systemctl start salt-master.service(根据版本不同)
minion: service salt-minion start
在master操作
需关闭防火墙
- cd /etc/salt/
- salt-key -L
- salt-key -a cc.com
- salt-key -A
- salt 'cc.com' cmd.run 'ifconfig' 控制master连接的id为cc.com的主机
- salt '*' cmd.run 'ifconfig' 控制master连接的所有主机
- salt 'c*.com' cmd.run 'ifconfig' 控制master连接的以c开头以.com结尾的所有主机
state:在master上进行相关配置,根据salt-master上的配置,在远程服务器上执行相关:命令/文件操作/服务设置等
(1)将master上的一个文件,同步到客户端
-
- cd /srv/salt 没有文件夹则创建
- vim init.sls
- 推送文件:salt '*' state.sls s7code
- cd /srv/salt 没有文件夹则创建
#init.sls /data/xx.py: #客户端文件路径 file: - managed - source: salt://s7code/files/xx.py #服务端原路径 - user: root - makedirs: True #有文件夹就修改,无则创建 - mode: 644
文件结构:
s7code/
├── files
│ └── xx.py
└── init.sls
(2)master上的一个文件夹,同步到客户端
-
- cd /srv/salt
- vim init.sls
- 推送文件夹:
salt 'w1.com' state.sls s7code
salt '*' state.sls s7code
#init.sls xxxxxx: file.recurse: - name: /data/codes - source: salt://s7code/files/video - user: root - makedirs: True - file_mode: 644 - dir_mode: 755
最终文件结构
s7code/
├── files
│ └── video
│ ├── a.py
│ ├── b.py
│ └── c.py
└── init.sls