在自动化运维方面,开源且主流的工具主要有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 linuxbaseurl=file:///home/yum/$releasevergpgcheck=0enable=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 /homeunzip install-minion.zip
3.执行安装脚本
进入安装包目录,执行安装脚本,执行结束后,控制台显示“complete!”
cd /install-minionsh 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:\salt\conf\minion配置文件,找到“master:”标签,按下图标注的方式把原来配置的多个master主机ip地址,改为只配置一台master主机。
五、salt-ssh安装
1.安装salt-ssh
执行yum install salt-ssh -y来安装salt-ssh。
2.master生成秘钥(只需执行一次)
master服务器分别生成master秘钥文件,执行ssh-keygen后默认回车
[root@xxxx .ssh]# ssh-keygenGenerating 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@xxxxThe 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_config50 Host *51 GSSAPIAuthentication yes52 StrictHostKeyChecking no
4.master端修改logging(只需要执行一次)
修复/srv/salt下有中文,salt-ssh执行报错的BUG,具体如下:
[root@localhost salt]# vim /usr/lib64/python2.6/logging/__init__.py307 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.226.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.ping26.47.136.1:True
至此,OK,搞定!
举报/反馈