ansible介绍
ansible是最近两年比较热门的一款服务器自动化运维工具,基于python语言来研发的,目前来说还是有很多类似的工具,比如ansible、puppet、cfengine、chef、func、fabric,其中ansible以及fabric还是挺推荐的,ansible集合了许多其它运维工具的优点,比如:批量系统配置、批量程序部署、批量运行命令。它有许多模块组成,简单来说呢,ansib是依赖程序模块并驱动模块工作的一个运维框架!
ansible组件
ansible的特点
注意事项
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端
ansible安装
12345678 | # apt-get安装apt–get install ansible # pip安装pip install ansible #如果提示\’module\’ object has no attribute \’HAVE_DECL_MPZ_POWM_SEC\’pip install pycrypto–on–pypi |
配置文件路径
12345 | # 主机配置文件/etc/ansible/hosts # ansible配置文件/etc/ansible/ansible.cfg |
Alic的个性
ansible.cfg的基本配置
1234567891011121314151617181920212223242526272829 | [defaults]# 基础配置项hostfile = /etc/ansible/hostslibrary = /usr/share/ansibleremote_tmp = $HOME/.ansible/tmppattern = *forks = 5poll_interval = 15sudo_user = root#ask_sudo_pass = True#ask_pass = Truetransport = smartremote_port = 22 # 角色配置路径#roles_path = /etc/ansible/roles [ssh_connection]ssh_args = \”\”# ssh秘钥文件control_path = ./ssh_keys (default is sftp)# 基于ssh连接scp_if_ssh = True [accelerate]accelerate_port = 5099accelerate_timeout = 30accelerate_connect_timeout = 5.0 |
hosts的主机清单列表
123 | # docker服务器主机组[docker]172.17.0.1 ansible_ssh_user=root ansible_ssh_pass=fenglican |
一言不合就动手吧~~~
既然配置好了那就测试控制端与被控端的通讯状态~~~
12345 | root@alic–ThinkPad–X201:~# ansible docker -m ping172.17.0.1 | success >> { \”changed\”: false, \”ping\”: \”pong\”} |
在被控端执行命令
12345678 | # 在docker服务器组安装vimroot@alic–ThinkPad–X201:~# ansible docker -a \”apt-get install vim\”172.17.0.1 | success | rc=0 >>Reading package lists...Building dependency tree...Reading state information...vim is already the newest version.0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded. |
将控制端的文件cp到被控端
1234567891011121314 | root@alic–ThinkPad–X201:/etc/ansible# ansible docker -m copy -a \”src=./hosts dest=/root/Alic/\”172.17.0.1 | success >> { \”changed\”: false, \”dest\”: \”/root/Alic/hosts\”, \”gid\”: 0, \”group\”: \”root\”, \”md5sum\”: \”e36c4ce85f9815ae010ca8d86d1afa0d\”, \”mode\”: \”0644\”, \”owner\”: \”root\”, \”path\”: \”/root/Alic/hosts\”, \”size\”: 252, \”state\”: \”file\”, \”uid\”: 0} |
在被控端执行控制端的脚本
1234567 | root@alic–ThinkPad–X201:/etc/ansible# ansible docker -m script -a \”Alic/demo.sh\”172.17.0.1 | success >> { \”changed\”: true, \”rc\”: 0, \”stderr\”: \”\”, \”stdout\”: \”hello~~~\\r\\n\”} |
使用ansible运维工具必不能少了playbook的。
来来来-传送-自动化运维之playbook