1.1 介绍
Ansible 是一个 IT 自动化工具。它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。Ansible 用 Python 编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如 Salt、Puppet、Chef等),但它们各有优劣,而Ansible的特点在于它的简洁。让 Ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的另一个优点,如果需要的话,你可以在不止一个地方控制你的整个基础架构。
1.2 工作原理
image.pngC:\Users\12559\Desktop\Ansible\Ansible\AnsiblePic1、在ANSIBLE 管理体系中,存在"管理节点" 和 "被管理节点" 两种角色。
2、被管理节点通常被称为"资产"
3、在管理节点上,Ansible将 AdHoc 或 PlayBook 转换为Python脚本。并通过SSH将这些Python 脚本传递到
被管理服务器上。在被管理服务器上依次执行,并实时的将结果返回给管理节点。
1.3 如何安装
image.png管理节点
确保存在OpenSSH
确保Python 版本 >= 2.6
确保安装ansible
被管理节点
确保存在OpenSSH
确保Python 版本 >= 2.4 //若为2.4 版本,确保安装了python-samplesjson 扩展
不需要安装ansible
安装Ansible
# pip install ansible // 确保最新版本ansible 或者 pip3 install ansible
# yum -y install ansible // 不一定是最新版本ansible
确保管理节点与被管理节点之间SSH 信任关系
// 生成公私钥对
# ssh-keygen -t rsa
# cd ~/.ssh && ls
id_rsa id_rsa.pub
// 将公钥 id_rsa.pub copy 到 被管理服务器上 authorized_keys 文件中, 确保文件的权限为 0600
// managedhost 为被管理服务器,copy的过程中需要用户名及密码
# ssh-copy-id root@managedhost
1.4 快速入门
场景假设
管理节点:
192.168.122.130
被管理节点(资产):
192.168.122.129
192.168.122.131
且管理节点 和 被管理节点之间的节点已经打通 SSH 信任关系。
场景一
在管理节点上,确保同所有被管理节点的网络连通性。
# ansible all -i 192.168.122.129,192.168.122.131 -m ping
// 注意 -i 参数后面接的是一个列表(List)。因此当为一个被管理节点时,我们后面一定要加一个逗号(,)告知是List
# ansible all -i 192.168.122.129, -m ping
场景二
在管理节点上,确保文件/tmp/a.conf 发布到所有被管理节点
# ansible all -i 192.168.122.129,192.168.122.131 -m copy -a "src=/tmp/a.conf dest=/tmp/a.conf"
参数解释
-i // 指定Ansible 的资产,也就是被管理服务器。
-m // 指定要运行的模块,比如这里的 ping 模块和 copy 模块
-a // 指定模块的参数, 这里模块 ping 没有指定参数。 模块 copy 指定了 src 和 dest 参数
all // ansible 中, 将其叫做pattern , 即匹配。我通常称它为资产选择器。
// 就是匹配资产(-i 参数指定) 中的一部分。这里的 all 是匹配所有指定的所有资产。
// 在资产的章节中,我们将详细阐述。
网友评论