SaltStack安装

你说的曾经没有我的故事 提交于 2020-02-12 12:14:04

SaltStack安装

常用的自动化运维工具有:

  • puppet
  • ansible
  • saltstack

此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansible和saltstack。其中ansible无需安装客户端,这是其最大的优势,而saltstack则需要安装客户端工具,类似zabbix的agent。应用场景方面,ansible常用于小型企业,而saltstack则常用于中大型企业,因为ansible无法并行执行而saltstack可以并行。但不论其特点如何,本质上均属同类,所以只需要掌握一种即可轻松胜任运维工作。

SaltStack安装前的准备工作

  • 配置IP
  • 修改主机名
  • 关闭防火墙

配置yum源

[root@node1 ~]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm  

官方yum源地址:https://repo.saltstack.com

在控制机上安装saltstack主控端软件

[root@node1 ~]# yum -y install salt salt-cloud salt-master salt-minion salt-ssh salt-syndic

修改主控端的配置文件

[root@node1 ~]# sed -i '/^#master:/a master: 192.168.39.133' /etc/salt/minion

启动主控端的salt-master和salt-minion,并设置开机自启

[root@node1 ~]# systemctl start salt-master
[root@node1 ~]# systemctl start salt-minion
[root@node1 ~]# systemctl enable salt-master
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-master.service to /usr/lib/systemd/system/salt-master.service.
[root@node1 ~]# systemctl enable salt-minion
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-minion.service to /usr/lib/systemd/system/salt-minion.service.

在被控机上安装salt-minion客户端

[root@node2 ~]# yum -y install salt-minion

修改被控端的配置文件,将master设为主控端的IP

[root@node2 ~]# sed -i '/^#master:/a master: 192.168.39.133' /etc/salt/minion

启动受控端的salt-minion并设置开机自启

[root@node2 ~]# systemctl start salt-minion
[root@node2 ~]# systemctl enable salt-minion
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-minion.service to /usr/lib/systemd/system/salt-minion.service.

SaltStack认证机制

saltstack主控端是依靠openssl证书来与受控端主机认证通讯的,受控端启动后会发送给主控端一个公钥证书文件,在主控端用salt-key命令来管理证书。

salt-minion与salt-master的认证过程:

  • minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成一对密钥,然后将公钥发给master
  • master收到minion的公钥后,通过salt-key命令接受该公钥。此时master的/etc/salt/pki/master/minions目录将会存放以minion id命名的公钥,然后master就能对minion发送控制指令了
salt-key常用选项
    -L      //列出所有公钥信息
    -a minion    //接受指定minion等待认证的key
    -A      //接受所有minion等待认证的key
    -r minion    //拒绝指定minion等待认证的key
    -R      //拒绝所有minion等待认证的key
    -f minion   //显示指定key的指纹信息
    -F      //显示所有key的指纹信息
    -d minion   //删除指定minion的key
    -D      //删除所有minion的key
    -y      //自动回答yes
[root@node1 salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node1.example.com
node2
Rejected Keys:
[root@node1 salt]# salt-key -a 'node*'
The following keys are going to be accepted:
Unaccepted Keys:
node1.example.com
node2
Proceed? [n/Y] y
Key for minion node1.example.com accepted.
Key for minion node2 accepted.

SaltStack远程执行

[root@node1 ~]# salt 'node2' cmd.run 'mkdir /root/tom'
node2:

[root@node2 ~]# ls
anaconda-ks.cfg    tom  
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!