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

[经验分享] saltstack安装、认证

[复制链接]

尚未签到

发表于 2018-7-31 06:55:53 | 显示全部楼层 |阅读模式
  写在前面:
  更该主机名,方便识别。更为了其他的方便。本次采用两台服务器测试。master端也同样可以安装minion作为客户端被管理。如果后续有需求,可以多增加几台服务器,或者虚拟机做测试。千万别用线上服务器。万一出问题就麻烦了。业务就挂了
  Saltstack(中国用户组www.saltstack.cn)
  基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷,配置和使用比puppet容易,能实现puppet几乎所有的功能。
  三种工作方式:  本地, c/s, 基于ssh(不用安装agent)
  三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理
  支持系统:大多数都支持,windows上不支持安装master
  参考博客:http://daixuan.blog.51cto.com/5426657/1899160
  实验主机:
  centos6.7-4:  192.168.1.110作为master端
  centos6.7-3:  192.168.1.107  作为minion端
  主机名最好更改一下:
  master端:
  vim /etc/sysconfig/network
  HOSTNAME=master
  vim /etc/hosts
  192.168.1.110 master
  minion端:
  vim /etc/sysconfig/network
  HOSTNAME=minion
  vim /etc/hosts
  192.168.1.107 minion
  1.2.2 yum方式安装(采用epel源)
  两台机器最好更改一下/etc/hosts地址 保证可以ping通
  master端安装:
  rpm  -ivh  https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  yum -y install salt-master//安装salt-master
  service salt-master start//启动salt-master
  ss -antlup | egrep "4505|4506"//查看端口  或者
  ps -ef | grep salt-master
  vim /etc/salt/master
  auto_accept: True//可选,key通过‘salt-key -a keyname’命令手动进行认证
  minon端安装:
  rpm  -ivh  https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  yum -y install salt-minion//安装salt-minion
  更改minion配置文件:
  vim /etc/salt/minion
  或者sed命令更改:
  sed -i 's/#master: salt/master: 192.168.1.110/g' /etc/salt/minion//增加master主机的配置,把ip指向master的ip。如果配置成主机名的话,需要在/etc/hosts文件中master主机对应的IP ,如果使用内部DNS的例外,可以在内部DNS上的统一配置。
  注意:192.168.1.110就是master服务器端的ip地址,master: 的后面有一个空格,空格后面才是ip地址,如果没有空格会提示出错 后面配置minion的ip也是一样有一个空格
  没有空格出现错误,错误如下:
  Starting salt-minion daemon: [ERROR ] Error parsing configuration file: /etc/salt/minion - while scanning a simple key
  in &quot;<string>&quot;, line 44, column 1:
  id:host172
  ^
  could not found expected ':'
  in &quot;<string>&quot;, line 46, column 1:
  # Append a domain to a hostname ...
  ^
  找到#id  改成
  id: minion_192.168.1.102  //id后面这个名字可以自己取,最好别太复杂。这个ip是minion端的ip地址,为了方便,我就用minion加上minion端的ip来命名了
  还可以改成minion然后用ip的最后一段,如 minion102这样
  或者用sed更改 如下:
  sed -i 's/#id:/id: minon_192.168.1.102/g' /etc/salt/minion
  service salt-minion start//启动salt-minion
  ss -antlu | egrep &quot;4505|4506&quot;//查看salt-minion端口
  ps -ef | grep salt-minion
  注意:ID如果不指定的话,salt通过socket.getfqdn()来获取主机的名称来作为标识,指定给ID,作为minion与master交互的身份标识
  更改完salt-minion配置文件以后,一定要重启salt-minion,否则 在master端进行salt-key -A进行认证key的时候不能认证通过,会发现没有认证的key
  netstat -antlp | grep 4505                         确保消息发布端口正常
  netstat -antlp | grep 4506                         确保客户端与服务端通信端口正常
  salt-master -l debug                             debug模式,查看salt都进行哪些操作
  2. key认证
  server上执行:
  salt-key -a minion               #这里minion就是minion配置文件设置的id,-a指定具体的某一台minion客户端服务器
  认证完后,此时我们在minion端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件
  可以使用 salt-key 命令查看到已经签名的客户端
  salt-key  可以使用-A签名所有主机,也可以使用-d删除指定主机的key
  salt-key的使用实例:
  更多证书管理方法  使用:salt-key --help  查看  下面会有列出
  # 显示所有minion的认证信息
  salt-key -L
  # 接受192.168.0.100的认证信息   -a指定具体key
  salt-key -a 192.168.0.100
  # 接受192.168.0.100的认证信息,不需要手动验证
  salt-key -a 192.168.0.100 -y
  # 接受192.168.0.100的认证信息,即使该minion是Rejected Keys状态
  salt-key -a 192.168.0.100 --include-all
  # 接受所有 Unaccepted Keys 状态的minion的认证信息
  salt-key -A  或者 salt-key -A -y
  # 拒绝认证192.168.0.100
  salt-key -d 192.168.0.100
  # 拒绝所有 Unaccepted Keys 状态的minion
  salt-key -D     #这样就删除了所有认证,最好不要做。但是删除了所有的认证以后,如果在此执行salt-key -A -L    会看到没有任何一个认证的key。 需要重启所有服务器上的minion,否则就会一直没有key被认证。
  可以  salt-key  *  一下    # *号 代表所有
  *************查看哪些服务器的minion挂了****************
  salt-run manage.status
  3.  远程执行
  示例1: salt '*' test.ping    这里的*表示所以已经签名的客户端,也可以指定其中一个
  示例2:  salt '*' cmd.run   'df -h'
  说明1: 这里的*必须是在master上已经被接受过的客户端,可以通过salt-key查到,通常是我们已经设定的id值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端  web10  web11, 那我们可以写成  salt 'web*'    salt 'web1[02]'  salt -L 'web10,web11'   salt -E 'web(10|11) 等形式,使用列表,即多个机器用逗号分隔,而且需要加-L,使用正则必须要带-E选项。 它还支持grains,加-G选项,后面会介绍到。
  其他安装方式:
  1.2.3 pip方式安装
  master端安装:
  pip install salt
  mkdir  /etc/salt/;wget -O /etc/salt/master  https://github.com/saltstack/salt/blob/develop/conf/master
  salt-master  -d
  minion端安装:
  pip  install  salt
  mkdir  /etc/salt/;wget  -SO /etc/salt/minion  https://github.com/saltstack/salt/blob/develop/conf/minion
  sed -i ‘s/#master: salt/master: IPADDRESS/g’/etc/salt/minion
  #IPADDRESS是master服务器的ip地址
  salt-minion  -d
  1.2.4源码安装
  master端安装:
  git  clone  https://github.com/saltstack/salt.git
  pip  install  -r  salt/requirements/zeromq.txt
  mkdir  /etc/salt/; cp salt/conf/master  /etc/salt
  salt-master  -d
  minion端安装:
  git  clone  https://github.com/saltstack/salt.git
  pip  install  -r  salt/requirements/zeromq.txt
  python  salt/setup.py  install
  mkdir  /etc/salt/; cp  salt/minion  /etc/salt/
  sed -i  ‘s/#master: salt/master: IPADDRESS/g’ /etc/salt/minion
  注意:IPADDRESS为master的ip地址
  由于saltstack软件依赖包比较多,我们不建议用源码编译安装每个依赖包的方式全装,所以这里采用pip安装方式去安装依赖包。如果想学编译安装,百度上有很多教程
  1.2.5 salt-bootstrap安装
  salt-bootstrap是saltstack的一个单独项目,该项目主要用于解决多平台意见不熟saltstack环境。核心工程就是维护一个庞大的bash脚本
  master端安装:
  curl -L https://bootstrap.saltstack.com  -o  install_salt.sh
  sh  install_salt.sh  -M  -N       #只安装最新版master
  minion端安装:
  echo “IPADDRESS  salt” >> /etc/hosts     #IPADDRESS为master服务器的地址
  curl  -L https://bootstrap.saltstack.com  -o  install_salt.sh

  sh  install_salt.sh  -i minion             #只安装最新版minion并且指定minion >  关于salt-bootstrap脚本参数可以运行  sh  install_salt.sh  -h 查看,改脚本也提供非常方便的一键部署参数
  ----------部署环境完成,本人用epel方式进行yum安装的--------
  1.3.1 证书管理
  [root@master ~]# salt-key  -L          //查看当前证书签证情况

  Accepted Keys:  已接收的密钥
  Denied Keys:      被决绝的密钥
  Unaccepted Keys:     未接受的密钥
  Rejected Keys:          被丢弃的密钥
  [root@master ~]# salt-key -A –y              //同意签证所有没接收的签证请求

  提示告诉我们:没有未签证的主机(因为我们只有一台master一台minion,minion接受签证了)
  运行第一条saltstack命令,检测master和minion之间通信是否正常
  salt '*' test.ping
  更多证书管理命令可以通过salt-key  -h查看
  -l    显示指定状态的key(支持正则表达式)
  -L   显示所有public  keys
  -a   接受制定等待恩正的key(支持正则表达式)
  -A  接受所有等待认证的key
  -r    拒绝等待认证的key(支持正则表达式)
  -R   拒绝所有等到认证的key,
  --include-all      显示所有状态的key(包含non-pending状态)
  -p(小写的)    打印指定的public  key(支持正则表达式)
  -P(大写的)    打印所有的public  key
  -d   删除指定的key
  -D  删除所有key
  -f    显示指定的key指纹信息(支持正则表达式)
  -F   现实所有key指纹信息
  第一条测试命令:
  salt 'minion_192.168.1.107' test.ping

  1.3.2 日常命令参数
  查看安装的时候分别安装了那些命令(yum安装方式)
  [root@master ~]# rpm -ql salt-master
  /etc/rc.d/init.d/salt-master          //salt-master服务启动脚本
  /etc/salt/master                         //salt master配置文件
  /usr/bin/salt                              //salt master核心操作命令
  /usr/bin/salt-cp                        //salt  文件传输命令
  /usr/bin/salt-key                     //salt  证书管理命令
  /usr/bin/salt-master               //salt master服务命令
  /usr/bin/salt-run                    //salt master runner命令
  /usr/bin/salt-unity
  ………

运维网声明 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-543779-1-1.html 上篇帖子: saltstack常用功能 下篇帖子: saltstack常用参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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