问题描述
该分类下保存了「配置管理」相关的内容。主要是涉及「配置分发」、「运维自动化」等等内容。
虽然这些工具还有其他的用途,但是在这里(我的工作)这些工作主要用途还是用作「配置管理」和「运维自动化」方面的内容。
既然是配置管理,这里肯定会包含一些「配置管理」的方法。
解决方案
在早期时(原始时期)
我们会借助 Shell 脚本来完成批量主机管理:
#!/bin/sh IP_ADDRESSES=(10.10.50.172 10.10.50.171 10.10.50.170) NEW_IP_ADDRESSES=(10.10.50.217 10.10.50.218 10.10.50.219) HOSTNAME_LIST=(esclus-01 esclus-02 esclus-03) for i in "${!IP_ADDRESSES[@]}" do echo "############################# ${IP_ADDRESSES[$i]}" # 复制公钥 sshpass -p "your-password" ssh-copy-id root@"${IP_ADDRESSES[$i]}" # 修改主机名 ssh root@"${IP_ADDRESSES[$i]}" hostnamectl set-hostname "${HOSTNAME_LIST[$i]}" ssh root@"${IP_ADDRESSES[$i]}" "echo >> /etc/hosts; echo 127.0.0.1 ${HOSTNAME_LIST[$i]} >> /etc/hosts" ssh root@"${IP_ADDRESSES[$i]}" \ nmcli connection add connection.id ens33 \ connection.type 802-3-ethernet ipv4.addresses "${NEW_IP_ADDRESSES[$i]}/24" \ ipv4.dns "'10.10.50.7 10.10.50.6'" ipv4.gateway "10.10.50.1" \ ipv4.method manual \ ifname ens33 ssh -oServerAliveInterval=2 -oServerAliveCountMax=2 root@"${IP_ADDRESSES[$i]}" nmcli connection up ens33 done
Chef vs Puppet vs Ansible vs Saltstack
Ansible vs. Puppet: The Key Differences to Know
Chef vs Puppet vs Ansible vs Saltstack: Which One to Choose | Edureka
Metrics | Chef | Puppet | Ansible | Saltstack | |
---|---|---|---|---|---|
1 | Availability | √ | √ | √ | √ |
2 | Ease of Setup | Not very easy | Not very easy | Easy | Not very easy |
3 | Management | Not very easy | Not very easy | Easy | Easy |
4 | Scalability | Highly Scalable | Highly Scalable | Highly Scalable | Highly Scalable |
5 | Configuration language | DSL(Ruby) | DSL(PuppetDSL) | YAML(Python) | YAML(Python) |
6 | Interoperability | High | High | High | High |
7 | Pricing (upto 100 nodes) | $13700 | $11200-$19900 | $10,000 | $15,000(approx.) |
Ansible
Chef
Puppet
SaltStack
参考文献
Wikipedia/Comparison of open-source configuration management software