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

[经验分享] Saltstack中关于ID的那些故事

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-30 10:08:53 | 显示全部楼层 |阅读模式
今儿个来说说关于ID设置这些事儿,以及碰到问题解决过程。希望对大家有用....

在前期主机名规划当中,我们会根据业务特定设计出一套主机名识别方法。。
有一天,一台测试机器安装完毕,但在Saltstack认证key时,会发现master和minions对接时,发现minion传过来的ID是localhost.localdomain,就奇怪了,这是为什么呢。?

默认主机操作系统安装完毕,/etc/sysconfig/network配置文件的hostname是localhost.localdomain,当你在salt master和minion认证时(未显示指定minion id情情况下),对端接受后,minion id一定是localhost.localdomain。。请看下面的认证过程


minion和master认证过程
1.minion在启动时,会在/etc/salt/pki/minion下自动生成minion.pem和minion.pub,然后将minion.pub发送给master。
2.master在收到minion的public key,我们在通过salt-key -a允许minion key,这样就会在master的/etc/salt/pki/master/minions下面存放以minion id命名的public key,此时认证通信已完成

上述认证过程不难发现,master是在收到minion传过来的public key,然后以minion id为其命名的。而有些的是localhost.localdomain,这是神马原因呢。?

前期未在salt minion的配置文件中显示指定minion id时,那将以默认值传递,那么这个默认值是这么得来的呢。?
在配置文件中有这么一段话, if left commented the id will be the hostname as returned by the python call: socket.getfqdn(), 是通过socket.getfqdn()函数获取而来。

那么我们可以写个小脚本来验证fqdn
1
2
3
4
cat a.py
#!/usr/bin/python env
import socket
print socket.getfqdn(socket.gethostname())




验证
[roo@test-01 ~]# python a.py
localhost.localdomain
在执行脚本验证时,发现FQDN不正确,这就需要重新配置Hostname  #重现场景

Hostname配置方法
1. /etc/sysconfig/network
NETWORK = XXXX
配置完毕,重新network服务

2./etc/hosts,做映射
内网IP  HOST
hostname -f进行验证fqdn,在执行a.py脚本验证,在删除缓存minion_id(为什么请看下面)

这里又碰到个小问题,在未重新配置hostname而直接连接salt master,传过去的key会是localhost.localdomain,这个时候你重新设置完hostname,从master上删除localhost.localdomain这个ID,再认证永远都是这个id,除非你强制指定id(minion端配置文件的ID项)。为什么呢.?  我们来看下minion启动过程



第二行,他使用了cache的minion id, minion在启动时会生成一个id文件,这个文件就在/etc/salt/minion_id,然后会加载进cache,每次重启都会读取这个,这就是为什么永远是localhost.localdomian id的原因
文件内容为
cat /etc/salt/minion_id
localhost.localdomain

上述解决办法,删除minion id文件
minion#  rm -f /etc/salt/minion_id
minion#  /etc/salt/minion restart

重新认证,即可解决问题~~

好啦。关于id这个,碰到的问题都在这。。
推荐:在连接master时配置好Hostname,并能解析FQDN,再进行salt master认证;希望对你有帮助


运维网声明 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-26679-1-1.html 上篇帖子: 使用Saltstack自动部署Openstack 下篇帖子: Saltstack整合reclass测试 故事
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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