1.Ansible简介

Ansible 是一个 IT 自动化工具。它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。Ansible 用 Python 编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如 salt、Puppet、Chef 等),但它们各有优劣,而 Ansible 的特点在于它的简洁。让 Ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的另一个优点,如果需要的话,你可以在不止一个地方控制你的整个基础架构。
工作原理
工作原理

2.安装Ansible

# 1. 切换 root(密码 1234)
su - root

# 2. 替换 CentOS 7 官方源为阿里云(必须!因为官方已停止服务)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 3. 不要直接装 epel-release!默认是国外源,巨慢
# 直接替换阿里云 EPEL 7 源(一步到位)
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

# 4. 清理缓存 + 生成新缓存
yum clean all
yum makecache

# 5. 安装 ansible
yum install -y ansible

# 6. 查看版本
ansible --version

3.建立管理节点与被管理节点的SSH信任关系

管理节点生成 RSA 算法的 SSH 密钥对

hostnamectl set-hostname Ansible-Manager
[root@Ansible-Manager ~]# ssh-keygen -t rsa
[root@Ansible-Manager ~]# ls .ssh
id_rsa  id_rsa.pub
将本地 SSH 公钥部署到远程服务器
[root@Ansible-Manager ~]# ssh-copy-id root@192.168.0.201
[root@Ansible-Manager ~]# ssh-copy-id root@192.168.0.202

4.Ansible初体验

场景1

测试与被管理节点的连通性

使用ping模块对所有临时资产列表的主机测试连通性
[root@Ansible-Manager ~]# ansible all -i 192.168.0.201,192.168.0.202 -m ping

场景2

发布文件到被管理节点

[root@Ansible-Manager ~]# touch /tmp/a.conf
[root@Ansible-Manager ~]# ansible all -i 192.168.0.201,192.168.0.202 -m copy -a "src=/tmp/a.conf dest=/tmp/a.conf"

all 在 ansible 中,将其叫做 pattern,即匹配。我通常称它为资产选择器。就是匹配资产 (-i 参数指定) 中的一部分。这里的 all 是匹配所有指定的所有资产。将在下面资产部分详细阐述。
-i 指定 Ansible 的资产,也就是被管理服务器。
-m 指定要运行的模块,比如这里的 ping 模块和 copy 模块
-a 指定模块的参数,这里模块 ping 没有指定参数。模块 copy 指定了 src 和 dest 参数。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐