一, ansible 简介
(1) 简介:
Ansible 是近年越来越火的一款自动化运维工具, 其主要的功能是帮助运维实现 IT 工作的自动化, 降低人为操作失误, 提高业务自动化率, 常用于软件部署, 配置自动化, 管理自动化, 系统化系统任务, 持续集成, 零宕机平滑升级等.
(2) 特点:
1 部署简单, 只需在主控端部署 Ansible 环境, 被控端无需做任何操作;
2 默认使用 SSH 协议对设备进行管理;
3 有大量常规运维操作模块, 可实现日常绝大部分操作;
4 配置简单, 轻量级, 无需在客户端安装 agent, 更新时, 只需在操作机上进行一次更新即可
二, ansible 软件安装
(1) 软件依赖包
paramiko, PyYAML,Jinja2,httplib2, six
(2) 安装方式
Git 安装: Git clone Git://GitHub.com/ansible/ansible.Git
python 工具安装
- yum install python-setuptools python-devel
- python setup.py build
- python setup.py install
(3) 安装完成测试
ansible --version
三, ansible.cfg 配置文件的配置
Ansible 默认安装好后有一个配置文件 / etc/ansible/ansible.cfg, 该配置文件中定义了 ansible 的主机的默认配置部分, 如默认是否需要输入密码, 是否开启 sudo 认证, action_plugins 插件的位置, hosts 主机组的位置, 是否开启 log 功能, 默认端口, key 文件位置等等. 在实际应用中, 主要对 default 模块, become 模块进行配置.
(1)default 模块
(2)became 模块
四, Inventory 文件配置
(1) 简介
Inventory 是 ansible 管理主机的配置文件, 相当于系统 hosts 文件的功能. 该文件没有特别的命名和路径要求. 可以自定义配置文件, 然后通过 - i 选项指定读取; ansible 也默认先读取当前目录下的 hosts 文件.
(2) 配置方式
1) 定义主机和组
可以是 IP, 也可以是 hostname 的方式, 如果端口不是默认的, 也可以在这里指定
2) 定义主机变量
hosts 文件可以单单对某个主机进行变量定义
3) 定义组变量
大量机器的变量定义需求, 赋予指定组内所有主机在 Playbook 中可用的变量, 等同与逐一给该组下的所有主机赋予统一变量.
4) 定义组嵌套及组变量
5) 多重变量定义
小结
1,Inventory 文件的常做的配置主要是定义主机和组, 定义组变量. 定义主机和组, 可以填写 IP, 也可以写主机名 (前提是已经做了主机名解析), 同时如果需要定义端口, 可以直接在 IP 或主机名后面直接添加对应的端口.
2, 组变量定义, 在 ansible-playbook 中常用, 就是将同一组的相同变量通过定义, 实现统一传值.
来源: http://www.bubuko.com/infodetail-3303199.html