Ansible- 批量linux管理工具
无意中看到这个项目,感觉跟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"
性能不知道如何,后续用脚本做一下压力测试。
阅读(13600) | 评论(1) | 转发(0) |