SaltStack连接Linux&Windows机器
来源:互联网 发布:优化企业家发展环境 编辑:程序博客网 时间:2024/06/05 04:01
搭建Saltstack环境,在过程中发现,跟ansible有很大的区别,功能分成了module和state,变得复杂了。首先需要在安装master、minion端,在通信方式上因为采用的Zeromq,需要获取机器的fqdn,这边虚拟机由于网卡问题容易踩坑,再之后还有hostname,端口访问等问题,总的来说,比ansible严格很多,毕竟ansible只要ssh OK就行了。下面记录遇到的errors和solutions。
Linux环境
1、因为不能连外网,用的rpm安装,pkg在salt官方repo里面都有。
官方repo链接【version: centos7.1/saltstack2017.7.0】:
https://repo.saltstack.com/yum/redhat/7.1/x86_64/latest/
注:以下vagrant1为salt-master端,vagrant4为salt-minion端,
[root@vagrant1 latest]# rpm -ivh salt-2017.7.0-1.el7.noarch.rpmwarning: salt-2017.7.0-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID de57bfbe: NOKEYPreparing... ################################# [100%]Updating / installing... 1:salt-2017.7.0-1.el7 ################################# [100%][root@vagrant1 latest]# rpm -ivh salt-master-2017.7.0-1.el7.noarch.rpmwarning: salt-master-2017.7.0-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID de57bfbe: NOKEYPreparing... ################################# [100%]Updating / installing... 1:salt-master-2017.7.0-1.el7 ################################# [100%][root@vagrant1 latest]# salt --versionsalt 2017.7.0 (Nitrogen)
注:中间可能需要一些依赖包,在官方repo里基本都能找到,minion端安装类似,此处不赘述。
2、配置master和minion端的config文件
#salt-master end[root@vagrant1 ~]# grep -E -v '^$|#' /etc/salt/masterinterface: 10.11.12.13 #绑定master ipauto_accept: True #设置自动签发证书log_file: /var/log/salt/masterkey_logfile: /var/log/salt/key
#salt-minion end[root@vagrant4 ~]# cat /etc/hostnamevagrant4[root@vagrant4 ~]# grep -E -v '^$|#' /etc/salt/minionmaster: 10.11.12.13 #设置master ipid: vagrant4 #设置minion的fqdnlog_file: /var/log/salt/minionkey_logfile: /var/log/salt/key
排错:minion配置中的id要和机器的hostname一致,可以在/etc/hostname中修改本机的hostname,如果id写的不对,后面需要清空/etc/salt/minion_id的内容(不需要删除文件),重新启动minion。因为如果你已经启动过了,它会直接去读取 /etc/salt/minion_id 的缓存。
3、在master端获取minion端key
[root@vagrant1 ~]# salt-key -LAccepted Keys:Denied Keys:Unaccepted Keys:Rejected Keys:
这边在salt-master和minion都启动的时候,还是get不到key,开始排错。
使用debug模式启动minion:
[root@vagrant4 ~]#salt-minion -l debug#巴拉巴拉这边显示了一堆,下面挑出关键errorsSaltReqTimeoutError while bringing up minion for multi-master.Error while bringing up minion for multi-master. Is master at 10.11.12.13 responding?
看报错,应该是没连上master机器,但是我的两机器是可以ping通的。
排错1:查看机器的ip和fqdn是否配置正确
[root@vagrant1 ~]# cat test.py#!/usr/bin/python envimport socketmyname = socket.getfqdn(socket.gethostname())myaddr = socket.gethostbyname(myname)print"myname= %s"% mynameprint"myaddr= %s"% myaddr[root@vagrant1 ~]#[root@vagrant1 ~]# python test.pymyname= vagrant1myaddr= 10.11.12.13
用python代码在master端运行,确认机器的fqdn是否与minion配置文件中设置的master一致;在minion端运行,确认name是否与minion配置文件中设置的id一致,如果是id不一致,记得清空/etc/salt/minion_id再重启。
排错2:用telnet命令在minion端检测master端的salt端口【4505&4506】并没有开启,需要设置防火墙开启master端口。
[root@vagrant1 ~]# netstat -anp | grep 4506tcp 0 0 10.167.223.21:4506 0.0.0.0:* LISTEN 15388/python[root@vagrant1 ~]# netstat -anp | grep 4505tcp 0 0 10.167.223.21:4505 0.0.0.0:* LISTEN 15382/python#查看防火墙开启的端口[root@vagrant1 ~]# firewall-cmd --list-ports80/tcp 10051/tcp#设置打开salt端口[root@vagrant1 ~]# firewall-cmd --zone=public --add-port=4505/tcp --permanentsuccess[root@vagrant1 ~]# firewall-cmd --zone=public --add-port=4506/tcp --permanentsuccess#重新加载防火墙[root@vagrant1 ~]# firewall-cmd --reloadsuccess[root@vagrant1 ~]# firewall-cmd --list-ports4505/tcp 80/tcp 4506/tcp 10051/tcp
重启salt-master,获取并自动签发minion-key成功:
[root@vagrant1 ~]# salt-key -LAccepted Keys:vagrant4Denied Keys:Unaccepted Keys:Rejected Keys:[root@vagrant1 ~]# salt vagrant4 test.pingvagrant4: True
Windows环境
如果以上排错就完成的话,windows搭建非常简单,我的环境是windows7。
1、安装minion端
在官网repo中https://repo.saltstack.com/#windows,找到相应版本的安装包,然后就像普通软件一样安装一下,注意中间需要在界面设置master【设为master的ip】,minion id【设为windows的fqdn】。这边如果设置的不对也没关系,在minion配置文件中可以修改,因为不能上传截图,所以自己摸索摸索哈。。。
注:如果不确定windows主机名的话,也可以用上面Linux环境的测试脚本test.py在cmd里面python命令跑一下,就能看到域名了。
2、安装最后一步可以点击直接启动minion服务,然后在控制面板=》管理工具=》服务中就能查看到salt-minion。
3、在master端确认是否get到windows minion端的key,ping也能成功。
[root@vagrant1 ~]# salt-key -LAccepted Keys:windows.local #windows机器域名vagrant4Denied Keys:Unaccepted Keys:Rejected Keys:[root@vagrant1 ~]# salt-key '*' test.pingAccepted Keys:windows.local #windows机器域名vagrant4Denied Keys:Unaccepted Keys:Rejected Keys:[root@vagrant1 ~]#
以上,就是saltstack环境搭建,后期还要好好学习,放上我排错时用到的参考链接。
https://segmentfault.com/a/1190000000505397
https://github.com/saltstack/salt/issues/39490
http://www.cnblogs.com/binyue/p/4701262.html
http://blog.csdn.net/jack85986370/article/details/51169203
- SaltStack连接Linux&Windows机器
- windows通过ssh连接linux机器
- windows机器 cmd命令ssh连接到远程linux机器
- windows机器连接mac
- winScp 连接linux 机器
- Linux下安装SaltStack
- Linux下访问windows机器.
- 查看windows机器远程连接记录
- Ansible连接windows机器&docker容器
- linux 连接windows打印机
- windows连接linux工具软件
- linux 远程连接windows
- Windows连接linux数据库
- linux连接windows
- windows、linux远程连接
- windows远程连接linux
- saltstack
- saltstack
- hdu 6053 TrickGCD 【容斥&筛法|莫比乌斯】
- 数据库DML语言--合并语句
- jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则提取器
- 第一个Spring小程序
- 对协程的理解
- SaltStack连接Linux&Windows机器
- AndroidStudio下使用Lambda表达式
- 解决Oracle出现以0开头的小数,开头的0消失的问题
- mysql忘记root密码的解决办法
- thinkphp 事物
- JavaScript实现二级联动
- day07 重写Override super() object类等 有错请多多指教
- sql优化
- HashMap实现原理及自定义