在自动化运维方面,开源且主流的工具主要有SaltStack和Ansible,两者互有优势。在这里我准备先整理Salt-Stack的常规安装部署和简单使用,包括salt-master、salt-minion(linux和windows)、salt-ssh。
后续篇幅再整理Salt-Stack的架构研究和Ansible的部署。希望能协助到需要的朋友。
一、简介

Saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。它是基于python开发的一套C/S架构配置管理工具,使用SSL证书签方的方式进行认证管理,底层使用ZeroMQ消息队列pub/sub方式通信。号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各种操作,并采用RSA Key方式确认身份。
二、Salt-master安装
1. 本地yum源制作
(1)从官网上下载制作SaltStack yum源需要的各系统各软件包
(2)用本地yum源制作工具,进入到各系统文件夹下, 执行yum源制作
[root@localhost yum.repos.d]# createrepo -v .
生成repodata文件夹,完成源索引建立
(3)完成后到各系统下进行本地yum源安装测试,如遇到问题缺少包的情况,单独下载后再重新制作。
2.配置yum源
所有操作均需使用root用户。
(1)将yum.zip放到/home目录下并解压,解压之后,即存在/home/yum目录;
$ cd /home
$ unzip yum.zip
(2)备份原有的yum库文件,并编辑salt-master需要的repo文件
$ cd /etc/yum.repos.d
$ mkdir tmprepo
$ mv *.repo tmprepo
$ vi salt.repo
编辑salt.repo文件的内容如下:
[salt-yum]
name=salt linux
baseurl=file:///home/yum/$releasever
gpgcheck=0
enable=1
编辑完成后,输入:wq保存
(3)执行yum clean all来更新yum库设置。
3.安装master
所有操作均需使用root用户。
(1)执行yum install salt-master -y来安装salt-master。
直到提示completed! 表明执行结束。
4.配置master
所有操作均需使用root用户
(1)修改master的配置文件/etc/salt/master
将行”#auto_accept: False” 更改为”auto_accept: True”,注意冒号之后有一个空格
将行“#timeout: 5“改为”timeout: 180″,注意冒号之后有一个空格
将行”#file_recv: False“改为”file_recv: True”,注意冒号之后有一个空格
将行“#file_roots”的注释符去掉,来使file_roots可见。
(2)创建必要的目录
mkdir -p /srv/salt
5.salt-master启动
(1)设置master开机自动启动
$ chkconfig salt-master on
(2)启动salt-master
$ salt-master -d
三、salt-minion安装(Linux下)
1.上传安装包
将客户端安装包install-minion.zip上传至客户端服务器某个目录下,以/home目录为例。
上传时最好以二进制格式上传,可以避免跨平台传输过程中出现乱码。
2.解压安装包
以root用户切换到/home目录下,解压安装包
cd /home
unzip install-minion.zip
3.执行安装脚本
进入安装包目录,执行安装脚本,执行结束后,控制台显示“complete!”
cd /install-minion
sh insminion.sh
4.检查安装结果
使用ps -ef | grep salt-minion或者service salt-minion status来查询客户端进程是否存在
登录服务端,尝试执行salt命令进行连接测试。
salt 'xxx.xxx.xxx.xxx' test.ping,其中xxx.xxx.xxx.xxx代表客户端的IP
四、salt-minion安装(Windows下)
1.支持windows环境
windows2008和windows2003
2.安装包说明
对于64位系统,安装
Salt-Minion-xxxx.x.x-AMD64-Setup.exe安装包
对于32位系统,安装
Salt-Minion-xxxx.x.x-win32-Setup.exe安装包
3.安装步骤
(1)双击运行跟操作系统对于的安装包,点击“next”

(2)选择“I Agree”

3)填写Master主机的ip,以及本机的ip地址,然后选择“install”,开始安装

(4)安装完成后运行。
(5)打开windows任务管理器,在“服务”中查看salt-minion服务是否已经处于“正在运行”状态。

如果为“已停止”状态,则右击选择“启动”,再观察运行状态
(6)对于windows2008环境,如果有出现salt-minion安装后不能运行的情况,需要安装Microsoft Visual C++ 2008 x64 SP1补丁包。
(7)最后,需要确认本机的防火墙是否已经关闭。
(8)注意:如果之前有客户端配置多台master连接的,修改minion安装路径下的C:saltconfminion配置文件,找到“master:”标签,按下图标注的方式把原来配置的多个master主机ip地址,改为只配置一台master主机。

五、salt-ssh安装
1.安装salt-ssh
所有操作均需使用root用户。
执行yum install salt-ssh -y来安装salt-ssh。
2.master生成秘钥(只需执行一次)
master服务器分别生成master秘钥文件,执行ssh-keygen后默认回车
[root@xxxx .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
18:17:cd:69:b9:69:17:1c:fd:28:7f:92:e1:15:46:74 root@xxxx
The key's randomart image is:
+–[ RSA 2048]—-+
| .o +.oooE|
| .* o .o.|
| . .. o ..o.|
| + + o o o|
| . S. . + + |
| = .|
| o |
| |
| |
+—————–+
3.master端修改ssh_config文件(只需要执行一次)
[root@xxxx template]# vim /etc/ssh/ssh_config
50 Host *
51 GSSAPIAuthentication yes
52 StrictHostKeyChecking no
4.master端修改logging(只需要执行一次)
修复/srv/salt下有中文,salt-ssh执行报错的BUG,具体如下:
[root@localhost salt]# vim /usr/lib64/python2.6/logging/__init__.py
307 if self.args:
308 args = tuple([(str(arg)).decode(“utf-8”) for arg in self.args])
309 msg = msg % (args)
310 return msg

5.拷贝公钥(每接入一个节点,都需要只需一次)
(1)手动拷贝master上公钥文件/root/.ssh/id_rsa.pub到minion的/root/.ssh下
(2)登录minion,执行如下命令:
[root@localhost .ssh]# cd /root/.ssh
[root@localhost .ssh]# cat id_rsa.pub authorized_keys
[root@localhost .ssh]# service sshd restart
6.配置salt-ssh配置文件(每接入一个节点,都需要配置一次)
(1)打开master上的salt-ssh配置文件
[root@xxxx ~]# vim /etc/salt/roster
(2)编辑配置文件,以标注的方式配置key和host地址
# Sample salt-ssh config file
#web1:
# host: 192.168.42.1 # The IP addr or DNS hostname
# user: fred # Remote executions will be executed as user fred
# passwd: foobarbaz # The password to use for login, if omitted, keys are used
# sudo: True # Whether to sudo to root, not enabled by default
#web2:
# host: 192.168.42.2
26.47.136.1:
host: 26.47.136.1 注意:host前面有两个空格
26.47.136.2:
host: 26.47.136.2
在master端进行秘钥首次登录确认

执行salt-ssh 接入的key地址 test.ping
输入Y后
输入接入的key地址的root用户密码,按回车确认
(4) 使用salt-ssh进行测试
[root@xxxx ~]# salt-ssh 26.47.136.1 test.ping
26.47.136.1:
True















- 最新
- 最热
只看作者