SaltStack部署
一、基礎介紹
1、簡介
SaltStack是一個服務器基礎架構集中化管理平臺,具備配置管理、遠程執行、監控等功能,一般可以理解為簡化版的puppet和加強版的func。SaltStack基於Python語言實現,結合輕量級消息隊列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)構建。
通過部署SaltStack環境,我們可以在成千上萬臺服務器上做到批量執行命令,根據不同業務特性進行配置集中化管理、分發文件、采集服務器數據、操作系統基礎及軟件包管理等,SaltStack是運維人員提高工作效率、規範業務配置與操作的利器。
2、特性
(1)、部署簡單、方便;
(2)、支持大部分UNIX/Linux及Windows環境;
(3)、主從集中化管理;
(4)、配置簡單、功能強大、擴展性強;
(5)、主控端(master)和被控端(minion)基於證書認證,安全可靠;
(6)、支持API及自定義模塊,可通過Python輕松擴展。
3、Master與Minion認證
(1)、minion在第一次啟動時,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion裏面設置)下自動生成minion.pem(private key)和 minion.pub(public key),然後將 minion.pub發送給master。
(2)、master在接收到minion的public key後,通過salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會存放以minion id命名的 public key,然後master就能對minion發送指令了。
4、Master與Minion的連接
(1)、SaltStack master啟動後默認監聽4505和4506兩個端口。4505(publish_port)為saltstack的消息發布系統,4506(ret_port)為saltstack客戶端與服務端通信的端口。如果使用lsof 查看4505端口,會發現所有的minion在4505端口持續保持在ESTABLISHED狀態。
(2)、minion與master之間的通信模式如下:
以上內容轉載自:http://sofar.blog.51cto.com/353572/1596960
二、SaltStack基礎安裝與配置
1. yum安裝
CentOS7 安裝 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm -y yum install salt-master -y yum install salt-minion -y CentOS6 安裝 https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm yum install salt-master -y yum install salt-minion -y
2. 配置
Master """ 1. 修改配置文件:/etc/salt/master interface: 0.0.0.0 # 表示Master的IP 2. 啟動 service salt-master start """ Slave """ 1. 修改配置文件 /etc/salt/minion master: 10.211.55.4 # master的地址 或 master: - 10.211.55.4 - 10.211.55.5 random_master: True id: c2.salt.com # 客戶端在salt-master中顯示的唯一ID 2. 啟動 service salt-minion start """
3. 授權
Master """ salt-key -L # 查看已授權和未授權的slave salt-key -a salve_id # 接受指定id的salve salt-key -r salve_id # 拒絕指定id的salve salt-key -d salve_id # 刪除指定id的salve """
4. 執行命令
在master服務器上對salve進行遠程操作
基於shell命令
salt ‘c2.salt.com‘ cmd.run ‘ifconfig‘
基於Salt的API
import salt.client local = salt.client.LocalClient() result = local.cmd(‘c2.salt.com‘, ‘cmd.run‘, [‘ifconfig‘])
參考資料:
1. http://sofar.blog.51cto.com/353572/1596960
2. http://www.cnblogs.com/wupeiqi/articles/6415436.html
SaltStack部署