Salt-ssh批量自動安裝被控端minion
Salt-ssh是Saltstack的另外一種管理方式,無需安裝minion端,可以運用salt的一切功能,管理和使用方法基本和salt一樣。但是,salt-ssh並沒有繼承原來的ZeroMQ通訊架構。所以,她的執行速度比較慢。作爲salt的補充在初次批量安裝minion或某些不能安裝minion的特殊場景下還是非常好用的。
上篇文章《集中化管理平臺Saltstack》,我們介紹了saltstack的安裝配置。這裏我們來介紹下怎麼批量安裝被控端。saltstack-master已經配置好了,我們在這裏還是採用原來的節點。下面,自動安裝mysql節點爲被控端。
一,環境配置說明
1.IP地址分配
Hostname IP地址 節點 服務
saltstack01 10.62.83.211 master salt-ssh
mysql01 10.62.83.201 mysql minion
2.軟件版本
軟件 版本號
OS CentOS release 6.7 (Final)
Python python2.6.6
salt 2015.8.10(Beryllium)
二,安裝配置salt-ssh
1.yum源配置
我們在這裏還是採用上篇文章的yum文件
2.安裝salt-ssh
Saltstack01節點繼續安裝salt-ssh
#yum -y installsalt-ssh
3.配置roster
所有需要安裝被控端的主機信息,都在這裏配置。
# vim /etc/salt/roster # Sample salt-ssh config file #web1: # host: 192.168.42.1 # The IP addr or DNS hostname # user: fred # Remoteexecutions will be executed as user fred # passwd: foobarbaz # The passwordto use for login, if omitted, keys are used # sudo: True # Whether tosudo to root, not enabled by default #web2: # host: 192.168.42.2 10.62.83.201: ##批量部署多客戶端,在此配置文件中添加類似客戶端的選項即可 host:10.62.83.201 user:root passwd:Emsee123! port:22 timeout: 10
當客戶端數量較多時,手工配置/etc/salt/roster比較繁瑣,這裏寫一個簡單腳本供參考:
# vim ip.sh #!/bin/bash for i in `cat /root/hostip` do echo"$i:">> /etc/salt/roster ##$i表示取文件的每行內容 echo" host: $i" >> /etc/salt/roster echo" user: USERNAME" >>/etc/salt/roster echo" passwd: PASSWORD" >>/etc/salt/roster echo" sudo: True" >>/etc/salt/roster echo" timeout: 10" >>/etc/salt/roster done
其中/root/hostip爲客戶端IP文件,例如:
10.10.10.30 10.10.10.31 10.10.10.32
三,配置state.sls文件結構
*.sls文件對被控主機進行狀態管理
1.創建目錄
# mkdir /srv/salt/minions # mkdir /srv/salt/minions/conf # mkdir /srv/salt/minions/yum.repos.d
2.編寫.sls文件
# vim install.sls #salt_minion_install minion_yum: file.recurse: - name: /etc/yum.repos.d - source: salt://minions/yum.repos.d ##提前準備的yum文件路徑 - user: root - group: root - file_mode: 644 - dir_mode: 755 - include_empty: True minion_install: pkg.installed: - pkgs: - salt-minion - require: - file: minion_yum - unless: rpm -qa | grep salt-minion minion_conf: file.managed: - name: /etc/salt/minion - source: salt://minions/conf/minion ##minion端需要配置的minion主配置文件 -user: root - group: root - mode: 640 - template: jinja - defaults: minion_id: {{ grains['fqdn_ip4'][0]}} ##這裏grains是收集minion端/etc/hosts文件IP和主機名的 - require: - pkg: minion_install minion_service: service.running: - name: salt-minion - enable: True - require: - file: minion_conf
3.編寫minion主文件
master: 10.62.83.211 id: mysql01 #這裏需要在/etc/hosts中配置對應的域名解析
注意:
最終的目錄結構如下圖:
四,部署salt-minion
Salt-ssh端執行如下命令:
# salt-ssh-i '*' state.sls minions.install ##’*’表示所有,也可有替換爲僅僅需要安裝minion的主機名或IP地址
五,結果驗證
#salt-ssh -ir '*' 'ps aux | grep salt' | grep salt | grep -v grep| wc -l ##查看安裝minion端的salt-minion進程是否運行,一個客戶端運行一個salt-minion服務。
參考博文:http://www.cnblogs.com/jim-hwg/p/4940480.html