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

[经验分享] Saltstack的部署及其详解

[复制链接]

尚未签到

发表于 2018-1-3 16:42:27 | 显示全部楼层 |阅读模式
DSC0000.png

  https://repo.saltstack.com/
  Saltstack简介:
  salt是一个多平台基础设施管理工具通常只用在linux上,使用那个轻量级的通讯器,ZN用python写成的批量管理工具,完全开源,遵守Apache2协议,与puppet,chef功能,类似有一个强大的执行命令引擎,salt提供 了一个非常快速,灵活 并且容易使用的配置管理系统,称之为“saltstack”
  salt.一种全新基础设施管理方式,部署轻松,在几分钟起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间妙极通讯
  *一个配置 管理系统,能够维护预定义状态的远程节点(比如:确保指定的报文被安装,指定服务器在运行)
  *一个分布式远程执行系统,用来在远程节点(可以是 单个节点,也可以是 任意规则挑选出来的节点)上执行命令和查询数据
  开发的目的为了远程 执行提供最好的解决方案,并使远程执行变得更好 ,更快,更简单,既要考虑 大规模部署 ,又要考虑小规模系统,提供适应多种场合的应用让人沮丧,但salt非常
  容易设置和维护,salt设计在任一数量的srver下都可以工作salt在几乎不改动配置的情况下就可以工作,也可以调整从而满足特定的需求并照顾执行
  salt的核心功能
  *使用命令 发送到远程系统上是并行,而不是串行
  *使用安全加密协议,
  *使用最少最快的网络载荷
  *提供简单的编辑接口
  salt同样更加细致化的领域控制系统来远程执行,使得系统成为目标,不止可以通过主机名,还可以通过系统属性
  ---------------------------------------------------------------------------------------------------------------------------
  基本原理:
  saltstack采用C/S模式,server端就是salt的master,clinet端minion,minion与master端之间通过zeroMQ消息列队 通信;
  Minion上线后先于master端联系,把自己的pubkey发送过去
  这是 master端通过salt-key-L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信;
  Master可以发送任何指令让minion执行了,salt有很多可执行的模块,比如说cmd模块,
[iyunv@localhost ~]# hostname Master.salt.com

  root@Master ~]#  vim /etc/hosts
DSC0001.png

[iyunv@Minion ~]# hostname   Minion.salt.com

[iyunv@Minion ~]# vim /etc/hosts

DSC0002.png

  关闭防火墙设置
[iyunv@Master ~]# service iptables stop

[iyunv@Master ~]# chkconfig iptables off

  root@Minion ~]# service iptables stop
[iyunv@Minion ~]# chkconfig iptables off

  官方文档epel源
  https://repo.saltstack.com/
  Master端配置
  1.1准备并配置epel源
[iyunv@Master yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[iyunv@Master yum.repos.d]# sudo yum clean expire-cache     #####更新缓存的

  Loaded plugins: fastestmirror, refresh-packagekit, security
  Cleaning repos: DVD epel salt-latest
  3 metadata files removed
[iyunv@Master yum.repos.d]# rpm -ql salt-master

  /etc/rc.d/init.d/salt-master    #启动脚本
  /etc/salt/master        #master配置文件
  /usr/bin/salt          #master的核心命令
  /usr/bin/salt-cp      #master的文件传输命令
  /usr/bin/salt-key      #salt文件传输命令
  /usr/bin/salt-master   #salt证书管理命令
  /usr/bin/salt-run   #master服务命令
  /usr/bin/salt-unity
[iyunv@Master ~]# vim /etc/salt/master

DSC0003.png

  root@Master ~]# cat /etc/salt/master | grep ^interface
  interface: 192.168.20.138
  启动master
[iyunv@Master ~]# service salt-master start

  Starting salt-master daemon:                               [确定]
[iyunv@Master ~]# ps -aux | grep salt

DSC0004.png

  Minion端配置
[iyunv@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[iyunv@Minion yum.repos.d]# sudo yum clean expire-cache

[iyunv@Minion yum.repos.d]#  yum -y install salt-minion

  1.2-编辑主配置文件
[iyunv@Minion ~]# rpm -ql salt-minion

  /etc/rc.d/init.d/salt-minion   #启动脚本
  /etc/salt/minion     #配置文件
  /etc/salt/minion.d
  /etc/salt/pki/minion
  /etc/salt/proxy
  /usr/bin/salt-call   #拉取命令
  /usr/bin/salt-minion    #minion服务命令
  /usr/bin/salt-proxy
[iyunv@Minion ~]# vim /etc/salt/minion

[iyunv@Minion ~]# grep "^master" /etc/salt/minion

  Minion端配置
[iyunv@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[iyunv@Minion yum.repos.d]# sudo yum clean expire-cache

[iyunv@Minion yum.repos.d]#  yum -y install salt-minion

  1.2-编辑主配置文件
[iyunv@Minion ~]# rpm -ql salt-minion

  /etc/rc.d/init.d/salt-minion   #启动脚本
  /etc/salt/minion     #配置文件
  /etc/salt/minion.d
  /etc/salt/pki/minion
  /etc/salt/proxy
  /usr/bin/salt-call   #拉取命令
  /usr/bin/salt-minion    #minion服务命令
  /usr/bin/salt-proxy
[iyunv@Minion ~]# vim /etc/salt/minion

DSC0005.png

[iyunv@Minion ~]# grep "^master" /etc/salt/minion

  master: 192.168.20.138       #### 表示我们要连接的是saltstack的master是192.168.20.138
[iyunv@Minion ~]# service salt-minion start

  Starting salt-minion:root:Minion.salt.com daemon: OK
  接下来我们需要测试saltsack
  Master端配置
  Saltstack使用SSL签证 方式进行安全认证
  1.查看 minion列表
  root@Master ~]# salt-key –L   #查看当前证书的签证情况
DSC0006.png

  2.接受所有key
  salt-key -a 'key-name' ##接受该key
  或者salt-key -A        ##接受所有key
  [iyunv@Master ~]# salt-key -A
   DSC0007.png
  3.简单的测试
  测试1
[iyunv@Master ~]# salt '*' test.ping

DSC0008.png

  详细解析:
  ‘*’代表的是target是指在那些minion上操作
  ‘test’是一个执行模块
  ‘ping’是执行模块下的函数
  测试2
[iyunv@Master ~]# salt '*' cmd.run 'df -h'   #检查目标主机挂载

DSC0009.png

  测试3.
  所有minion安装ftp服务
[iyunv@Master ~]# salt '*' pkg.install ftp

[iyunv@Master ~]# salt '*' pkg.install vsftpd

DSC00010.png

  参数详解:
  Pkg是一个执行模块
  Install是一个模块下面的参数
  ftp是函数的参数(arg),有的函数需要参数,有的则不需要
  ------------------------------------------------------------------------------------------------------------------------------

运维网声明 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-431226-1-1.html 上篇帖子: SaltStack Job管理 下篇帖子: 想吃饭的孩纸
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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