0
点赞
收藏
分享

微信扫一扫

自动化运维工具Ansible(1)安装与基础

介绍

Ansible 是一个 IT 自动化工具。它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。

Ansible 用 Python 编写,尽管市面上已经有很多可供选择的配置管理解决方案(例如 Salt、Puppet、Chef等),但它们各有优劣,而Ansible的特点在于它的简洁。让 Ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的另一个优点,如果需要的话,你可以在不止一个地方控制你的整个基础架构。


工作原理

自动化运维工具Ansible(1)安装与基础_服务器

1、在ANSIBLE 管理体系中,存在"管理节点" 和 "被管理节点" 两种角色。

2、被管理节点通常被称为"资产"

3、在管理节点上,Ansible将 AdHoc 或 PlayBook 转换为Python脚本。

     并通过SSH将这些Python 脚本传递到被管理服务器上。

     在被管理服务器上依次执行,并实时的将结果返回给管理节点。


安装

先决条件

自动化运维工具Ansible(1)安装与基础_服务器_02

管理节点

  • 确保存在OpenSSH
  • 确保Python 版本 >= 2.6
  • 确保安装ansible

被管理节点

  • 确保存在OpenSSH
  • 确保Python 版本 >= 2.4 //若为2.4 版本,确保安装了python-samplesjson 扩展
  • 不需要安装ansible

安装Ansible

yum 方式

[root@localhost ~]# yum install epel-release
[root@localhost ~]# yum install ansible

pip 方式

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

[root@localhost ~]# yum install epel-release
[root@localhost ~]# yum install python2-pip
[root@localhost ~]# pip install ansible

查看版本

[root@localhost ~]# ansible --version

自动化运维工具Ansible(1)安装与基础_Ansible_03


建立SSH管理节点

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

  • 管理节点与被管理节点建立SSH 信任关系
[root@localhost ~]#ssh-keygen -t rsa

将本地的公钥传输到被管理节点

  • 每个被管理节点都需要传递
  • 过程中需要被管理节点(这里是192.168.19.102)的用户名(这里是 root)及密码
[root@localhost ~]#ssh-copy-id root@192.168.19.102

自动化运维工具Ansible(1)安装与基础_Ansible_04


快速入门

管理节点:

  • 192.168.19.100

被管理节点(资产):

  • 192.168.19.102
  • 192.168.19.103

场景一:

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

[root@localhost ~]#ssh-copy-id 192.168.19.103
[root@localhost ~]#ssh-copy-id 192.168.19.102
[root@localhost ~]#ansible all -i 192.168.19.102,192.168.19.103 -m ping

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

  • ansible all -i 172.18.0.3, -m ping

自动化运维工具Ansible(1)安装与基础_服务器_05

场景二

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

管理节点:

[root@localhost ~]#touch /tmp/a.conf
[root@localhost ~]#ansible all -i 192.168.19.102,192.168.19.103 -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(1)安装与基础_Ansible_06

192.168.19.102

[root@localhost ~]#ls .ansible/
tmp
[root@localhost ~]#ls /tmp/a.conf
/tmp/a.conf

192.168.19.103

[root@localhost ~]#ls .ansible/
tmp
[root@localhost ~]#ls /tmp/a.conf
/tmp/a.conf

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


举报

相关推荐

0 条评论