常用自动化运维工具---Ansible

Ansible 特点:基于Python开发,无需客户端、轻量级、配置语言采用YAML。

ansible优点:无需安装客户端,更轻量级,可以很轻松的是实现分布式扩展,更强的远程命令执行操作。

ansible里面包含了Connection Plugins(连接插件:用来连接被管理端,虽然ansible是使用ssh连接到各个主机的名单时它还支持其他的连接方法,所以是需要有连接插件的)、Core modules(核心模块:Ansible本身而言是模块化的,实现的各种操作依赖于各种模块)、Custom Modules(自定义模块:当核心模块完成不了某种任务之后,可以通过自定义模块去扩展)、Plugins(插件)、Playbooks(剧本:通过配置文件定义一些任务,将这个配置文件下发到客户端,然后客户端可以自己执行)、Host Inventory(主机清单:主机清单中描述了被管理的客户端)

ansible的工作原理:

ansible通过远程连接的插件连接到远程被管理的主机,具体执行哪些任务就使用到哪些模块,将这个模块定义到playbooks中,通过主机清单去了解被管理端的主机有哪些,然后执行playbooks里面的操作。

ansible的安装:

在控制端用yum方式安装Ansible

1.新增epel-release第三方套件来源。

$ sudo yum install -y epel-release

如下图所示

常用自动化运维工具---Ansible

常用自动化运维工具---Ansible

2.安装 Ansible。

$ sudo yum install -y ansible

如下图所示,

常用自动化运维工具---Ansible

常用自动化运维工具---Ansible

安装完毕!

3.安装Python并配置ssh无秘登录安装Python并配置ssh无秘登录

1.在所有节点上执行

[[email protected] ~]#yum install -y openssh-server python

如下图所示:

常用自动化运维工具---Ansible

2.在控制节点上执行:

ssh-******

如下图所示

常用自动化运维工具---Ansible

3.在控制节点上执行:

[[email protected] ~]# ssh-copy-id 192.168.1.101(被控制节点的ip地址)

如下图所示

常用自动化运维工具---Ansible

修改配置文件ansible.cfg并配置被控制主机

[[email protected] ~]# vi /etc/ansible/ansible.cfg

之后,敲一下键盘上的i键,进入insert模式,可以对文档进行编辑,
[defaults]
inventory = /etc/ansible/hosts
forks = 5
become = root
remote_port  = 22
host_key_checking = False
timeout = 10
log_path = /var/log/ansible.log
private_key_file = /root/.ssh/id_rsa

如下图所示

常用自动化运维工具---Ansible

做完上述操作之后,输入键盘上的Esc键,接着输入:,再输入wq键,写入并保存。

[[email protected] ~]#vi  /etc/ansible/hosts

[webservers]
192.168.1.101  被控制端的ip地址

测试各个远程主机组webservers连通性

[[email protected] ~]# ansible webservers -m ping

如下图所示

常用自动化运维工具---Ansible