DevOps学院

DevOps学院

中国新一代IT在线教育平台
运维知识体系

运维知识体系

运维知识体系总结,持续更新,欢迎转载。
缓存知识体系

缓存知识体系

运维知识体系之缓存,分层多级缓存体系。
速云科技

速云科技

DevOps咨询、企业内训、落地解决方案。

请问saltstack 选择哪个版本比较好

SaltStackhdggdfg 回复了问题 • 3 人关注 • 6 个回复 • 485 次浏览 • 2018-08-10 20:24 • 来自相关话题

saltstack的file.managed模块下的源source理念不清楚

SaltStack赵班长 回复了问题 • 2 人关注 • 1 个回复 • 309 次浏览 • 2018-05-08 19:04 • 来自相关话题

关于saltstack openstack的安装

SaltStack赵班长 回复了问题 • 2 人关注 • 2 个回复 • 1693 次浏览 • 2018-05-04 19:31 • 来自相关话题

salt-cloud创建云主机失败

回复

SaltStack匿名用户 发起了问题 • 0 人关注 • 0 个回复 • 640 次浏览 • 2017-06-15 17:21 • 来自相关话题

CentOS 5.8升级到Salt-minion-2016.11

SaltStack赵班长 发表了文章 • 0 个评论 • 1060 次浏览 • 2017-01-22 11:50 • 来自相关话题

SaltStack 2016.11版本发布了。小伙伴们,赶紧升级吧,其中需要注意的是老的版本,如CentOS 5.8升级的时候一定不要忘记升级zmq 。

建议部署salt-ssh,使用salt-ssh进行minion的升级等管理

使用官方的源:wget https://repo.saltstack.com/yum ... h.rpm
sudo rpm -ivh salt-repo-latest-1.el5.noarch.rpm
rm -f salt-repo-latest-1.el5.noarch.rpm升级开始:yum install salt-minion python26-zmq -y

注意:一定要升级python26-zmq,不然无法启动。 查看全部
SaltStack 2016.11版本发布了。小伙伴们,赶紧升级吧,其中需要注意的是老的版本,如CentOS 5.8升级的时候一定不要忘记升级zmq 。


建议部署salt-ssh,使用salt-ssh进行minion的升级等管理


使用官方的源:
wget https://repo.saltstack.com/yum ... h.rpm
sudo rpm -ivh salt-repo-latest-1.el5.noarch.rpm
rm -f salt-repo-latest-1.el5.noarch.rpm
升级开始:
yum install salt-minion python26-zmq -y


注意:一定要升级python26-zmq,不然无法启动。


《中国SaltStack用户组》2016技术分享活动【免费】

SaltStack赵班长 发表了文章 • 2 个评论 • 1310 次浏览 • 2016-11-09 15:16 • 来自相关话题

虽然是免费活动,但是我们很认真,请确认能够准时参加后报名!

活动介绍【免费社区活动,友好交流,相互学习!】






分享嘉宾【纯干货,无尿点!】







报名地址: http://www.bagevent.com/event/272186 查看全部
虽然是免费活动,但是我们很认真,请确认能够准时参加后报名!

活动介绍【免费社区活动,友好交流,相互学习!】

1708317507999.jpg


分享嘉宾【纯干货,无尿点!】

1714398437999.jpg



报名地址: http://www.bagevent.com/event/272186

基于开源实现的自动化扩容-简图

SaltStack赵班长 发表了文章 • 1 个评论 • 5717 次浏览 • 2016-04-22 21:17 • 来自相关话题

好久没有写文章了,下午因为在群里有人讨论自动化扩容的话题,就顺手画了张图,直接上图。不说话。

        涉及开源项目:Zabbix、Saltstack、Etcd、Haproxy、Keepalived、Mesos、Marathon、Docker、Salt-cloud、Etcd、OpenStack。注:选用etcd因为saltstack刚好有一个ectd_pillar。






  查看全部
好久没有写文章了,下午因为在群里有人讨论自动化扩容的话题,就顺手画了张图,直接上图。不说话。

        涉及开源项目:Zabbix、Saltstack、Etcd、Haproxy、Keepalived、Mesos、Marathon、Docker、Salt-cloud、Etcd、OpenStack。注:选用etcd因为saltstack刚好有一个ectd_pillar。


auto.jpg

 

SaltStack快速入门(5)-SaltStack与ZeroMQ

SaltStack赵班长 发表了文章 • 2 个评论 • 3966 次浏览 • 2015-10-27 22:46 • 来自相关话题

    我们进行自动化运维大多数情况下,是我们的服务器数量已经远远超过人工SSH维护的范围,SaltStack可以支数以千计,甚至更多的服务器。这些性能的提供主要来自于ZeroMQ,因为SaltStack底层是基于ZeroMQ进行高效的网络通信。ZMQ用于node与node间的通信,node可以是主机也可以是进程。

ZeroMQ简介
  ZeroMQ(我们通常还会用ØMQ , 0MQ, zmq等来表示)是一个简单好用的传输层,像框架一样的一个套接字库,他使得Socket编程更加简单、简洁和性能更高。它还是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。
发布与订阅
ZeroMQ支持Publish/Subscribe,即发布与订阅模式,我们经常简称Pub/Sub。






 Salt Master运行两个网络服务,其中一个是ZeroMQ PUB系统,默认监听4505端口。可以通过修改/etc/salt/master配置文件的publish_port参数设置。它是salt的消息发布系统,如果查看4505端口,会发现所有的Minion连接到Master的4505端口,TCP状态持续保持为ESTABLISHED。

[root@ master]# lsof -i:4505

    这样Salt Master发布一个消息,所有连接到4505这个Pub端口上的Minion都会接收到这个消息。然后每个Minion会再判断自己是否需要执行这个消息。

请求与响应
ZeroMQ支持Request-Reply,即请求与响应模式,我们经常简称REQ/REP。





     Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口,可以通过修改/etc/salt/master配置文件的ret_port参数设置。它是salt客户端与服务端通信的端口。比如说Minion执行某个命令后的返回值就是发送给Master的4506这个REP端口
由于我们在最初安装了python-setproctitle软件包,所以我们可以直接看到Salt Master启动的进程的名称。

[root@ops-node1 ~]# ps aux | grep salt
/usr/bin/salt-master -d ProcessManager  #中心进程管理器
/usr/bin/salt-master -d _clear_old_jobs  #清除旧的Jobs文件及更新fileserver
/usr/bin/salt-master -d Publisher       #将任务PUB到Minion端
/usr/bin/salt-master -d EventPublisher  #Event Publisher进程
/usr/bin/salt-master -d ReqServer_ProcessManager #ReqServer进程管理器
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorkerQueue #将Ret接口(ROUTER)数据转发到Worker(DEALER)
  查看全部
    我们进行自动化运维大多数情况下,是我们的服务器数量已经远远超过人工SSH维护的范围,SaltStack可以支数以千计,甚至更多的服务器。这些性能的提供主要来自于ZeroMQ,因为SaltStack底层是基于ZeroMQ进行高效的网络通信。ZMQ用于node与node间的通信,node可以是主机也可以是进程。

ZeroMQ简介
  ZeroMQ(我们通常还会用ØMQ , 0MQ, zmq等来表示)是一个简单好用的传输层,像框架一样的一个套接字库,他使得Socket编程更加简单、简洁和性能更高。它还是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。
发布与订阅
ZeroMQ支持Publish/Subscribe,即发布与订阅模式,我们经常简称Pub/Sub。

1.png


 Salt Master运行两个网络服务,其中一个是ZeroMQ PUB系统,默认监听4505端口。可以通过修改/etc/salt/master配置文件的publish_port参数设置。它是salt的消息发布系统,如果查看4505端口,会发现所有的Minion连接到Master的4505端口,TCP状态持续保持为ESTABLISHED。


[root@ master]# lsof -i:4505


    这样Salt Master发布一个消息,所有连接到4505这个Pub端口上的Minion都会接收到这个消息。然后每个Minion会再判断自己是否需要执行这个消息。

请求与响应
ZeroMQ支持Request-Reply,即请求与响应模式,我们经常简称REQ/REP。
2.png


     Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口,可以通过修改/etc/salt/master配置文件的ret_port参数设置。它是salt客户端与服务端通信的端口。比如说Minion执行某个命令后的返回值就是发送给Master的4506这个REP端口
由于我们在最初安装了python-setproctitle软件包,所以我们可以直接看到Salt Master启动的进程的名称。


[root@ops-node1 ~]# ps aux | grep salt
/usr/bin/salt-master -d ProcessManager  #中心进程管理器
/usr/bin/salt-master -d _clear_old_jobs  #清除旧的Jobs文件及更新fileserver
/usr/bin/salt-master -d Publisher       #将任务PUB到Minion端
/usr/bin/salt-master -d EventPublisher  #Event Publisher进程
/usr/bin/salt-master -d ReqServer_ProcessManager #ReqServer进程管理器
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorker  #工作进程
/usr/bin/salt-master -d MWorkerQueue #将Ret接口(ROUTER)数据转发到Worker(DEALER)
 


SaltStack快速入门(4)-SaltStack配置管理

SaltStack赵班长 发表了文章 • 3 个评论 • 3068 次浏览 • 2015-10-27 22:42 • 来自相关话题

      Salt使用State模块文件进行配置管理,使用YAML编写,以.sls结尾。如果进行配置管理首先需要再Master的配置文件中指定”file roots”的选项,Salt支持环境的配置,比如开发环节、测试环境、生产环境,但是base环境是必须的。而且Base环境必须包含入口文件top.sls。

 第一步:设置file_roots
修改Master配置文件,指定File_roots。

[root@master ~]# vim /etc/salt/master
file_roots:
   base:
     - /srv/salt

创建相应的目录
[root@master ~]# mkdir -p /srv/salt
重启Salt Master
[root@master ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon:                              [  OK  ]
Starting salt-master daemon:                               [  OK  ]

 第二步:设置top.sls
在top.sls入口文件设置环境(如生产、开发、测试对应不同的minion和模块)。

[root@master ~]# vim /srv/salt/top.sls
base:
  '*':
   - apache

解释:所有的Minion均执行base目录下的init模块下的pkg-init.sls。我们可以把很多的sls放在一个目录中,方便管理。在top.sls只需要指定目录结构即可。

 第三步:编写状态文件

[root@master ~]# vim /srv/salt/apache.sls
apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel
apache-service:
  service.running:
    - enable: True
    - reload: True

第四步:执行状态
[root@master ~]# salt '*' state.highstate

根据上面的设置,执行完状态后。Salt会检查Minion上是否有上面编写的三个软件包。如果没有就会自动使用Yum安装上。 查看全部
      Salt使用State模块文件进行配置管理,使用YAML编写,以.sls结尾。如果进行配置管理首先需要再Master的配置文件中指定”file roots”的选项,Salt支持环境的配置,比如开发环节、测试环境、生产环境,但是base环境是必须的。而且Base环境必须包含入口文件top.sls。

 第一步:设置file_roots
修改Master配置文件,指定File_roots。


[root@master ~]# vim /etc/salt/master
file_roots:
   base:
     - /srv/salt


创建相应的目录
[root@master ~]# mkdir -p /srv/salt
重启Salt Master
[root@master ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon:                              [  OK  ]
Starting salt-master daemon:                               [  OK  ]

 第二步:设置top.sls
在top.sls入口文件设置环境(如生产、开发、测试对应不同的minion和模块)。


[root@master ~]# vim /srv/salt/top.sls
base:
  '*':
   - apache


解释:所有的Minion均执行base目录下的init模块下的pkg-init.sls。我们可以把很多的sls放在一个目录中,方便管理。在top.sls只需要指定目录结构即可。

 第三步:编写状态文件


[root@master ~]# vim /srv/salt/apache.sls
apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel
apache-service:
  service.running:
    - enable: True
    - reload: True


第四步:执行状态
[root@master ~]# salt '*' state.highstate

根据上面的设置,执行完状态后。Salt会检查Minion上是否有上面编写的三个软件包。如果没有就会自动使用Yum安装上。

SaltStack快速入门(3)-SaltStack远程执行

SaltStack赵班长 发表了文章 • 0 个评论 • 2793 次浏览 • 2015-10-27 22:39 • 来自相关话题

      在前面3个小节我们介绍了SaltStack并且讲解了Salt的安装部署。相信你现在已经只有拥有一个Master和至少一个Minion。我们能做点什么呢?下面的两个章节,带领读者快速的使用SaltStack的远程执行和配置管理功能。

    远程执行时SaltStack的核心功能之一。主要使用salt模块可以批量给选定的Minion端执行相应的命令,并获得返回结果。让我们执行第一个Salt命令。

[root@master ~]# salt '*' test.ping
minion.example.com:
True

    上面的命令用来查看有哪些Minion节点连接到Master。* 指的是选定的目标Minion,很显然代表所有。就是所有Minion端了。test.ping是salt远程执行的一个模块。(注意:这并不是一个ICMP ping。)

SaltStack可以使用cmd.run模块远程执行shell命令,使用cmd.run。如:让 Minion节点运行uptime命令。

[root@master ~]# salt '*' cmd.run 'uptime'
minion.example.com:
     18:00:04 up 8 min,  1 user,  load average: 0.00, 0.05, 0.03

      SaltStack提供了大量的命令模块可以使用。更详细远程执行的相关知识请参考第九章。好吧,也许你不想掌握更多的命令,那么尽情的用cmd.run吧。但是由于cmd.run可以执行所有的命令,所以不建议在生产环境中使用cmd.run。或者使用ACL来控制让哪些用户可以使用cmd.run。 查看全部
      在前面3个小节我们介绍了SaltStack并且讲解了Salt的安装部署。相信你现在已经只有拥有一个Master和至少一个Minion。我们能做点什么呢?下面的两个章节,带领读者快速的使用SaltStack的远程执行和配置管理功能。

    远程执行时SaltStack的核心功能之一。主要使用salt模块可以批量给选定的Minion端执行相应的命令,并获得返回结果。让我们执行第一个Salt命令。


[root@master ~]# salt '*' test.ping
minion.example.com:
True


    上面的命令用来查看有哪些Minion节点连接到Master。* 指的是选定的目标Minion,很显然代表所有。就是所有Minion端了。test.ping是salt远程执行的一个模块。(注意:这并不是一个ICMP ping。)

SaltStack可以使用cmd.run模块远程执行shell命令,使用cmd.run。如:让 Minion节点运行uptime命令。


[root@master ~]# salt '*' cmd.run 'uptime'
minion.example.com:
     18:00:04 up 8 min,  1 user,  load average: 0.00, 0.05, 0.03


      SaltStack提供了大量的命令模块可以使用。更详细远程执行的相关知识请参考第九章。好吧,也许你不想掌握更多的命令,那么尽情的用cmd.run吧。但是由于cmd.run可以执行所有的命令,所以不建议在生产环境中使用cmd.run。或者使用ACL来控制让哪些用户可以使用cmd.run。