saltstack之(十)扩展组件salt-ssh

场景:公司有50台服务器,需要安装salt-minion客户端,并完成与salt-master的认证,接受salt-master的管理。本片文章只用了2台服务器做演示,大家可以在roster文件中定义所有50台机器的信息。

规划:
192.168.3.1 node1.xkops.com --角色:salt-master|minion1
192.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: xiaoke
node2.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:
True
node1.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.sls

1 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-minion

7.执行成功后,检查客户端salt-minion状态。
node1:

[root@node1 salt]# chkconfig --list salt-master
salt-master 0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
[root@node1 salt]# service salt-minion status
salt-minion (pid 33114) 正在运行...
[root@node1 salt]# egrep '^id|^master' /etc/salt/minion
master: node1.xkops.com
id: node1.xkops.com

node2检查同上。

8.在master端查看。
[root@node1 salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node1.xkops.com
node2.xkops.com

9.接受所有的客户端认证
[root@node1 salt]# salt-key -y -A

*注释:当然也可以不使用状态文件,使用salt-ssh直接执行shell命令安装salt-minion也可以。

 

posted @ 2016-05-11 19:40  xkops  阅读(436)  评论(0编辑  收藏  举报