我正在寻找对我的基础架构执行定期滚动升级的最佳方法。
通常,这涉及在每台主机上执行此操作,一次一个:
sudo yum update -y && sudo reboot
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了可扩展性的限制。
我只想在我的每个角色中一次重新启动一个节点,这样,比如说,我不会同时关闭所有负载均衡器或数据库集群成员。
理想情况下,我想做类似的事情:
for role in $(< roles_list.txt) ; do
mco package update_all_and_reboot \
--batch 1 --batch-sleep 90 \
-C $role -F environment=test
done
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并不存在。我不确定使用“shell”代理是否是最好的方法?
mco shell run 'yum update -y && reboot' \
--batch 1 --batch-sleep 90
Run Code Online (Sandbox Code Playgroud)
不过,我是否只是为这项工作寻找了错误的工具?有没有更好的方法来管理这些滚动重启,但我可以以某种方式与我的 Puppet 分配的角色联系起来,这样我就可以放心,我不会一下子删除任何重要的东西,但我仍然可以做一些并行更新和重启?
我经常做一些事情,我循环遍历服务器列表以采取一些行动。例如:
for s in `cat servers.txt` ; do
echo; echo $s
ssh $s 'do something'
done
Run Code Online (Sandbox Code Playgroud)
我想知道(从 shell 的角度)是否有比 cat servers.txt
是的,我知道 mcollective、capistrano 等工具 - 我经常这样做是为了解决 mcollective 问题:-)
目的
目前办公室里有 100 多个系统,预计这个数字还会增加。所有系统都由 Puppet 管理。如果 Puppet 代码在 Puppet Master 上发生变化,需要在多个系统上实现,则通过sudo puppet agent -t
在每个系统上执行手动运行 Puppet 。有时需要在 10 多个系统上实施更改。为了安全起见,我们的想法是使用 MCollective,即在所有系统上运行 puppet 一次,而不是在每个系统上运行 puppet。
试图
ActiveMQ的,MCollective服务器和MCollective客户端已经安装在戏梦人生。一旦mco ping
运行,就可以找到Puppetmaster。安装完成后MCollective木偶代理和运行mco rpc puppet runonce
木偶是在运行戏梦人生。
为了连接远程 mcollective-client,想法是必须安装并运行activemq和mcollective-client,以便通过发出mco ping
.
/var/log/mcollective.log
INFO -- : activemq.rb:114:in `on_connecting' TCP Connection attempt 23 to stomp://mcollective@stomp1:6163
Run Code Online (Sandbox Code Playgroud)
/etc/activemq/activemq.xml
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/>
</transportConnectors>
</broker> …
Run Code Online (Sandbox Code Playgroud) 我真的很想在我的一组服务器上运行 MCollective,但是每台机器上都有大量不受信任的用户,这使得使用 MCollective 在我看来并不理想。我知道您可以采取一些措施来采取预防措施,但我对 ActiveMQ 不够熟悉/想要一些更注意类似环境的东西,以便在盒子外进行挖掘。
我正在寻找一个像工具这样的事实集合。
(因为没有 mcollective 标签,所以在 puppet / server 下进行标记,而且我没有足够的声誉来创建一个新的)
如果团队习惯于使用 Capistrano 进行应用程序部署,那么切换到 MCollective 或将其添加到组合中有什么引人注目的好处?该团队已经承担了采用 Puppet 进行系统配置管理的任务,因此存在一次学习多少的问题。
mcollective ×5
activemq ×1
automation ×1
bash ×1
capistrano ×1
puppet ×1
puppet-agent ×1
rhel7 ×1
shell ×1
ssh ×1