Ansible 基础

Ansible 基础

Ansible 介绍及安装

1、介绍

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

2、工作原理

在这里插入图片描述

在ANSIBLE 管理体系中,存在"管理节点" 和 “被管理节点” 两种角色,被管理节点通常被称为"资产"。在管理节点上,Ansible将 AdHoc 或 PlayBook 转换为Python 脚本,并通过SSH将这些Python 脚本传递到被管理服务器上。在被管理服务器上依次执行,并实时的将结果返回给管理节点。

3、如何安装

在这里插入图片描述

3.1 先决条件

管理节点:确保存在OpenSSH 确保Python 版本 >= 2.6 确保安装ansible

被管理节点:确保存在OpenSSH 确保Python 版本 >= 2.4 //若为2.4 版本, 确保安装了python-samplesjson 扩展 不需要安装ansible

3.2 安装Ansible

yum方式

# yum install epel-release
# yum install ansible

pip 方式

这里是使用系统自带的 python2 的环境
如果系统中安装的 pip ,可以直接使用pip 安装 ansible

# yum install epel-release
# yum install python2-pip
# pip install ansible

查看版本

# ansible --version
ansible 2.9.6
 config file = /etc/ansible/ansible.cfg
 configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
 ansible python module location = /usr/lib/python2.7/site-packages/ansible
 executable location = /usr/bin/ansible
 python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

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

管理节点(ansible)中创建密钥对

# ssh-keygen -t rsa

将本地的公钥传输到被管理节点
每个被管理节点都需要传递
过程中需要被管理节点(这里是 172.18.0.3)的用户名(这里是 root)及密码

# ssh-copy-id root@172.18.0.3

快速入门

1、场景假设

管理节点:172.18.0.2 主机名 qfedu.com
被管理节点(资产):172.18.0.3、172.17.0.4
且管理节点和被管理节点之间的节点已经打通 SSH 信任关系。

2、场景一

在管理节点上,测试与所有被管理节点的网络连通性。

# ansible all -i 172.18.0.3,172.18.0.4 -m ping
172.18.0.4 | SUCCESS => {
 "ansible_facts": {
 "discovered_interpreter_python": "/usr/bin/python"
 },
 "changed": false,
 "ping": "pong"
}
172.18.0.3 | SUCCESS => {
 "ansible_facts": {
 "discovered_interpreter_python": "/usr/bin/python"
 },
 "changed": false,
 "ping": "pong"
}

注意 -i 参数后面接的是个列表(List)。因此当为一个被管理节点时,我们后面一定要加一个英文逗号(,),告知是List

# ansible all -i 172.18.0.3, -m ping
3、场景二

在管理节点上,确保文件 /tmp/a.conf 发布到所有被管理节点

# touch /tmp/a.conf
# ansible all -i 172.18.0.3,172.18.0.4 -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 参数。

总结:ansible 就是什么模块,让谁去什么事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值