最新消息:

Ansible入门(一)

Linux ipcpu 3448浏览

Ansible入门

一、Ansible简介

Ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。
这个工具的目标有这么几项

自动化部署APP
自动化管理配置项
自动化的持续交互
自动化的(AWS)云服务管理

所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。
通俗的说就是批量的在远程服务器上执行命令 。

二、Ansible工作机制

Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排.

由上面的图可以看到 Ansible 的组成由 5 个部分组成:

Ansible: 核心
Modules: 包括 Ansible 自带的核心模块及自定义模块
Plugins: 完成模块功能的补充,包括连接插件、邮件插件等
Playbooks: 网上很多翻译为剧本,个人觉得理解为编排更为合理;定义 Ansible 多任务配置文件,有 Ansible 自动执行
Inventory: 定义 Ansible 管理主机的清单

三、Ansible安装

除了源码编译安装还有两种比较简单的安装方式。

3.1 yum安装

  1. rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  2. yum install python-devel ansible -y

3.2 pip安装

  1. pip install ansible

四、Ansible的简单使用

Ansible 通过读取默认的主机清单配置/etc/ansible/hosts,可以同时连接到多个远程主机上执行任务。
默认路径可以通过修改 ansible.cfg 的 hostfile 参数指定路径。

  1. cat /etc/ansible/hosts
  2. [web]
  3. 192.168.1.100
  4. 192.168.1.101

注:为了避免Ansible下发指令时输入目标主机密码,需要提前配置免密钥登陆

  1. #@@ping测试,所有主机
  2. ansible all -m ping
  3. #@@运行shell命令,web组服务器
  4. ansible web -m shell -a "ps aux | grep java"
  5. #@@文件传输(copy)
  6. ansible web -m copy -a "src=/etc/hosts dest=/tmp/hosts"
  7. #@@包管理(yum)
  8. ansible web -m yum -a "name=nc state=present"
  9. #@@用户管理(user)
  10. ansible web -m user -a "name=zabbix uid=1000 state=present"
  11. #@@服务控制(services)
  12. ansible web -m service -a "name=nfs state=started"

五、参考资料

http://sapser.github.io/ansible/2014/07/09/ansible-getting-started/
http://www.the5fire.com/ansible-guide-cn.html
http://zylhz.com/?p=107
http://cn.soulmachine.me/blog/20140127/

转载请注明:IPCPU-网络之路 » Ansible入门(一)