场景:公司有50台服务器,需要安装salt-minion客户端,并完成与salt-master的认证,接受salt-master的管理。本片文章只用了2台服务器做演示,大家可以在roster文件中定义所有50台机器的信息。
规划:
192.168.3.1 node1.xkops.com --角色:salt-master|minion1192.168.3.2 node2.xkops.com --角色:salt-minion2 1.在node1上安装salt-master和salt-ssh,启动salt-master并设置开机启动。[root@node1 ~]# yum -y install salt-master salt-ssh
[root@node1 ~]# service salt-master start[root@node1 ~]# chkconfig salt-master on 2.在node1上编辑salt-ssh的roster文件。[root@node1 ~]# cat /etc/salt/roster node1.xkops.com: host: 192.168.3.1 user: root passwd: xiaokenode2.xkops.com: host: 192.168.3.2 user: root passwd: xiaoke
3.在node1上测试salt-ssh连接roster文件中定义的客户端。
[root@node1 ~]# salt-ssh --key-deploy -i '*' test.ping node2.xkops.com: Truenode1.xkops.com: True*注释:此时会将node1服务器的key写入所有客户端。故可以将roster文件中的passwd删除,避免密码泄漏。
4.在node1上编写sate.sls文件批量安装salt-minion,目录结构如下:
[root@node1 salt]# pwd/srv/salt[root@node1 salt]# tree.├── files│ └── minion├── salt-minion.sls└── top.sls1 directory, 3 files
5.state文件的详细内容如下:
[root@node1 salt]# cat top.sls base: '*': - salt-minion[root@node1 salt]# cat salt-minion.sls salt-minion-install: pkg.installed: - name: salt-minion file.managed: - name: /etc/salt/minion - source: salt://files/minion - user: root - group: root - mode: 644 - template: jinja - defaults: HOST: { { grains['id'] }} - require: - pkg: salt-minion-install service.running: - name: salt-minion - enable: true - reload: true - watch: - file: salt-minion-install[root@node1 salt]# egrep ^id files/minion id: { { HOST }}
6.执行编写的状态模块
[root@node1 salt]# salt-ssh '*' state.sls salt-minion7.执行成功后,检查客户端salt-minion状态。
node1:[root@node1 salt]# chkconfig --list salt-mastersalt-master 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭[root@node1 salt]# service salt-minion statussalt-minion (pid 33114) 正在运行...[root@node1 salt]# egrep '^id|^master' /etc/salt/minionmaster: node1.xkops.comid: node1.xkops.com
node2检查同上。
8.在master端查看。
[root@node1 salt]# salt-key -LAccepted Keys:Denied Keys:Unaccepted Keys:node1.xkops.comnode2.xkops.com9.接受所有的客户端认证
[root@node1 salt]# salt-key -y -A*注释:当然也可以不使用状态文件,使用salt-ssh直接执行shell命令安装salt-minion也可以。