Ansible的基础认识以及安装(一),ansible基础


Ansible的基础认识以及安装(一)

**

一.Ansible简介

**
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:------------------ 百度百科

(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

简单的说ansibled的特点有:
1.批量管理工具
2.模块
3.python
4.无终端,是基于ssh实现管理的
5.也支持主从模式
6.也支持playbook

**

二.Ansible的安装

**
(一)、安装ansible
版本选择查看官方网站:(http://www.ansible.com.cn)

[root@ser1 ~]# wget http://172.20.223.181/7/epel/Packages/a/ansible-2.6.2-1.el7.noarch.rpm
[root@ser1 ~]# yum localinstall ansible-2.6.2-1.el7.noarch.rpm
[root@ser1 ~]# ansible --version

相关的配置文件

 [root@ser1 ~]# rpm -qc ansible 
        	/etc/ansible/ansible.cfg
        	/etc/ansible/hosts

在/etc/ansible/hosts添加被操控节点的主机IP

vim /etc/ansible/hosts
##############在末行添加如下信息#################
[web]
10.220.5.138
10.220.5.139

(二)、生成密钥,分发给被操控的节点

[root@ser1 ~]# ssh-keygen -t rsa -P ""
	[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub ser1
	[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub ser2
	[root@ser1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub ser3
测试
[root@ser1 ~]# ssh ser2 ip addr

安装完毕啦!
**

三、使用ansibl模块的使用

**
格式:ansible [options]
选项:
-m:指定模块名称
-a:指定模块的具体参数
-s:以sudo的方式运行操作
-i:指定被管理节点的主机列表
-f:一批连接几个主机进行操作(默认是5个主机)

1.查看ansible所支持的模块的信息

[root@ser1 ~]# ansible-doc -l
	【默认用command模块】

2.查看一个模块的使用帮助

[root@ser1 ~]# ansible-doc -s 模块名

比如,查看command模块的帮助

[root@ser1 ~]# ansible-doc -s command

**

四.Ansible管理节点的方式

**
1.ansible被管理节点列表文件
/etc/ansible/hosts

定义被管理节点的时候,可以单独基于主机做定义,也可以将多个主机定义成一个主机组

将两个被管理节点定义成一个主机组

[root@ser1 ~]# cp /etc/ansible/hosts{,.bak}
[root@ser1 ~]# vim /etc/ansible/hosts

		添加一个主机组,如下
		[webserver]
		10.220.5.252
		10.220.5.253

2.在管理节点通过ansible在被管理节点执行命令

格式:ansible 目标 -m command -a "命令"
	说明:
		目标:目标可以是一个主机组,也可以是hosts文件中的一个或者多个主机,也可是all
		-m command:表示这次ansible操作是基于command模块实现
		-a "命令":表示是在管理节点上要执行的命令

3.在webserver主机组中的所有主机上执行命令,用主机组名

[root@ser1 ansible]# ansible webserver -m command -a "hostname"
	10.220.5.253 | SUCCESS | rc=0 >>
	ser3

	10.220.5.252 | SUCCESS | rc=0 >>
	ser2

4.在所有主机上都执行,用命令all

[root@ser1 ansible]# ansible all -m command -a "hostname"
	10.220.5.252 | SUCCESS | rc=0 >>
	ser2

	10.220.5.253 | SUCCESS | rc=0 >>
	ser3

5.在指定的主机上执行命令,用被操控节点的IP地址

[root@ser1 ansible]# ansible 10.220.5.252 -m command -a "hostname"
	10.220.5.252 | SUCCESS | rc=0 >>
	ser2

相关内容

    暂无相关文章