设为首页 收藏本站
查看: 1575|回复: 0

[经验分享] saltstack master minion安装配置简单使用

[复制链接]

尚未签到

发表于 2018-1-3 20:02:33 | 显示全部楼层 |阅读模式
  首先先了解下saltstack是什么,为什么使用它
  它与Ansible、Puppet都属于集中管理工具,由于现在企业规模的不断庞大及业务的增长,所需要管理的服务器数量增多,而且大部分机器都属于同类业务集群,操作是统一的,甚至于所有机器都有一些相同的初始项,连上所有机器进行完全相同的操作固然是可以的,但是浪费了大量的时间及精力,感觉太蠢。集中管理工具的出现就是将同类机器的统一操作统一执行,一次解决,得到返回结果然后确定任务是否成功,如果出现个别情况可以再去对应目标上排错,节约了大量时间,提升工作效率。因此集中管理的前提是规范化!
DSC0000.jpg

  以前是使用Puppet的比较多,但是Puppet的安装配置以及使用真的是特么太坑了,so,随着时间的推移,Saltstack、Ansible的大规模使用时代就到来了。Ansible也是一款优秀的集中管理工具,主要基于ssh协议进行相关操作,他的特点是不需要客户端即可立刻使用(其实我萌的Saltstack也是可以哒),大家选择自己喜欢的就可以了 DSC0001.png
  安装与简单使用
  

1 [iyunv@linux-node1 ~]# cat /etc/yum.repos.d/saltstack.repo  2 [saltstack-repo]
  3 name=SaltStack repo for RHEL/CentOS $releasever
  4 baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
  5 enabled=1
  6 gpgcheck=0
  7 [iyunv@linux-node1 ~]# yum install -y salt-master salt-minion
  8 [iyunv@linux-node1 ~]# systemctl start salt-master
  9 [iyunv@linux-node1 ~]# vim /etc/salt/minion
  
10 master:
  
11   - 192.168.56.11                    # 前面2个空格,“-”后一个空格!
  
12 [iyunv@linux-node1 ~]# systemctl start salt-minion
  
13 [iyunv@linux-node1 ~]# salt-key –L        # 列出key状态
  
14 Accepted Keys:
  
15 Denied Keys:
  
16 Unaccepted Keys:
  
17 linux-node1.example.com            # 会出现主机hostname
  
18 Rejected Keys:
  
19 [iyunv@linux-node1 ~]# salt-key –A        # 代表接受所有Unaccepted Keys
  
20 [iyunv@linux-node1 ~]# salt-key -L
  
21 Accepted Keys:
  
22 linux-node1.example.com
  
23 Denied Keys:
  
24 Unaccepted Keys:
  
25 Rejected Keys:
  
26 [iyunv@linux-node1 ~]# salt '*' test.ping
  
27 linux-node1.example.com:
  
28 True
  

  同样的minion相关操作我们也在node2上执行一边
  

1 [iyunv@linux-node1 ~]# cat /etc/yum.repos.d/saltstack.repo  2 [saltstack-repo]
  3 name=SaltStack repo for RHEL/CentOS $releasever
  4 baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
  5 enabled=1
  6 gpgcheck=0
  7 [iyunv@linux-node1 ~]# yum install -y salt-minion
  8 [iyunv@linux-node1 ~]# systemctl start salt- minion
  9 [iyunv@linux-node1 ~]# vim /etc/salt/minion
  
10 master:
  
11   - 192.168.56.11                    # 前面2个空格,“-”后一个空格!
  
12 [iyunv@linux-node1 ~]# systemctl start salt-minion
  

  然后回到node1上
  

1 [iyunv@linux-node1 ~]# salt-key -L  2 Accepted Keys:
  3 linux-node1.example.com
  4 Denied Keys:
  5 Unaccepted Keys:
  6 linux-node2.example.com
  7 Rejected Keys:
  8 [iyunv@linux-node1 ~]# salt-key –a linux-node2.example.com        # 代表单独接受某个key
  9 [iyunv@linux-node1 ~]# salt-key –L
  
10 [iyunv@linux-node1 ~]# salt-key -L
  
11 Accepted Keys:
  
12 linux-node1.example.com
  
13 linux-node2.example.com
  
14 Denied Keys:
  
15 Unaccepted Keys:
  
16 Rejected Keys:
  
17 [iyunv@linux-node1 ~]# salt '*' test.ping
  
18 linux-node2.example.com:
  
19     True
  
20 linux-node1.example.com:
  
21     True
  

  在初使用salt的时候,我们要是记住的最重要的命令就是cmd.run,cmd.run很重要,它就是专门来执行bash命令的,也就是让你所希望的机器都执行同一条命令,这对于同类机器的操作节约了大量时间,单单会使用cmd.run就可以使日常重复性工作减少很多了
  

1 [iyunv@linux-node1 ~]# salt '*' cmd.run 'ls -l /root'  
2 linux-node2.example.com:
  
3     total 0
  
4 linux-node1.example.com:
  
5     total 0
  
6 drwxr-xr-x 5 root root 79 Nov 13 16:35 tidb-latest-linux-amd64
  

  这里有一些常见的问题
  1.master与minion是如何通信的?minion上木有开神马端口呀
  Saltstack默认使用zeromq传递消息,zeromq会随着Salt的安装而安装,他是一个消息队列服务,master通过4505端口将指令放入zeromq的队列中,而所有的minion都会监听master的4505端口,然后从队列中拿消息进行对比决定是否进行操作,如果操作将自己操作的结果丢回zeromq另外一个队列,master从4506端口监听该队列,得到返回结果,然后展示出来
  

1 [iyunv@linux-node1 ~]# netstat -tpln  2 Active Internet connections (only servers)
  3 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  4 tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
  5 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      998/sshd
  6 tcp        0      0 0.0.0.0:4505            0.0.0.0:*               LISTEN      1055/python         # 发送指令
  7 tcp        0      0 0.0.0.0:4506            0.0.0.0:*               LISTEN      1073/python         # 接受结果
  8 tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
  9 tcp6       0      0 :::22                   :::*                    LISTEN      998/sshd
  
10 [iyunv@linux-node2 tmp]# netstat -an|grep 4505
  
11 tcp        0      0 192.168.56.12:48492     192.168.56.11:4505      ESTABLISHED        # 与master的4505一直处于ESTABLISHED状态
  

  2.我的key认证不想用主机名,我想自定义名称
  我们只需要在配置minion时再配置id就可以了,但是建议还是使用主机名,因为不是所有软件都可以自定义别名,我们要做的是全流程自动化,而不单单是salt这方面,而主机名是大家都可以通用的
  

1 [iyunv@linux-node1 ~]# vim /etc/salt/minion  
2 #id:                                # 修改成id: XXXXX
  

  3.我更改了主机名没什么反映啊,怎么破?
  这就要说salt之间的认证流程了
  启动master,生成自己的密钥与公钥,叫master.pem ,master.pub
  

1 [iyunv@linux-node1 master]# pwd  
2 /etc/salt/pki/master
  
3 [iyunv@linux-node1 master]# ls
  
4 master.pem  master.pub  minions  minions_autosign  minions_denied  minions_pre  minions_rejected
  

  minion配置文件内指定Master,开启服务,生成自己的密钥与公钥,叫minion.pem ,minion.pub
  

1 [iyunv@linux-node2 minion]# pwd  
2 /etc/salt/pki/minion
  
3 [iyunv@linux-node2 minion]# ls
  
4 minion.pem  minion.pub
  

  minion会想配置的目标发将自己的公钥存放在master的/etc/salt/pki/master/minions_pre下,请问你是我的master嘛 DSC0002.png
  master一看,我靠,女装大佬,可爱,想,就表示,对对对我就是你的master,然后接受密钥,并把自己的公钥发给minion从而正式签订契约,此时minions_pre下的minion公钥转放到/etc/salt/pki/master/minions下,而master的公钥也会在minion的/etc/salt/pki/minion下保留一份 DSC0003.jpg
  

1 [iyunv@linux-node2 minion]# ls  
2 minion_master.pub  minion.pem  minion.pub
  

  所以我们根据上述流程,当minion的id变更后,我们需要进行如下操作
  

1 minion端停止salt-minion  
2 master端salt-key –d 原本minion的id
  
3 minion端删除/etc/salt/pki/minion下所有文件
  
4 minion端修改配置文件中的id变成需要的新id
  
5 重启minion端的salt-minion
  
6 master端认证接受新的id
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431298-1-1.html 上篇帖子: saltstack之haproxy的安装配置 下篇帖子: SaltStack部署配置Tomcat-第三篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表