ansible ——批量 linux/unix服务器管理工具

https://github.com/ansible/ansible

无意中看到这个项目,感觉跟puppet很相似,花时间了解了一下,发现还是很不错,而且支持使用python添加自己需要的模块,很简单。
而且相对来说,ansible有如下优点:
1、轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行
3、使用python编写的,维护更简单,ruby语法过于复杂
4、支持sudo

缺点:
1、对于几千台、上万台机器的操作,还不清楚性能、效率情况如何,需要进一步了解。

简要使用方法如下:
ansible 在centos 6.2上的安装

源码安装,源码去github上下载即可

yum install PyYAML.x86_64 python-paramiko.noarch python-jinja2.x86_64 
python setup.py build
python setup.py install

rpm 安装

git clone git://github.com/ansible/ansible.git
cd ./ansible
make rpm
sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm

在/etc/profile下面添加上下面的环境变量

export ANSIBLE_HOSTS=/etc/ansible/ansible_hosts
export ANSIBLE_CONFIG=/etc/ansible/ansible.cfg

其中/etc/ansible/ansible_hosts里面就是要操作的主机列表,当然,在执行命令时,也可以带【-i】参数来指定主机列表文件名

ansible all -m command -a "/bin/echo hello" --ask-pass
ansible all -m ping --ask-pass -u root
ansible all -m script -a "/root/hequan/shell/t.sh" -k
ansible all -m copy -a "src=/root/hequan/shell/t.sh dest=/tmp/ mode=755 owner=root group=root" -k -u root
ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root" -k -u root
ansible all -i /etc/ansible/serverlist -m shell -a "/tmp/t.sh" -k -u root

ansible all -m user -a "name=foo password="
ansible all -m user -a "name=foo state=absent"

ps:因为现在公司使用的管理程序,是我手工写的(同样用python),现在机器少,已经足够用了,等后面业务起来了,再详细的研究他。

ansible ——批量 linux/unix服务器管理工具》有2个想法

  1. 不错,最近在学习python 写自动部署系统,希望能多交流 我的博客是 blog.duplicatedcode.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据