ansible原理及安装使用

一、ansible概念*
1、ansible时是一个==“配置管理工具”,也是一个“自动化运维工具”==;

2、ansible能做什么:
可以帮助我们完成一些批量任务,或者经常重复的工作。
eg:同时在100台服务器上安装nginx服务,并启动他们。每当有新服务器机入工作环境中,需要为新服务器部署redis服务等等;

3、幂等性
对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的,不会因为多次点击而产生了副作用。
eg:你想把一个文件拷贝到目标主机目录上,但是不确定此目录是否存在此文件,当使用ansible时,如果此目录存在此文件,ansible便不会进行任何操作,如果不存在,ansible会将文件拷贝到对应目录中,ansible是一个==“以结果为导向”==,指定一个目标状态,ansible会自动判断当前状态是否与目标状态一致。这就是幂等性,当我们重复执行同一项操作时,得到的结果是一样的;

4、ansible通过ssh管理其他受管主机;

二、ansible安装使用
ansible中文官方文档:http://www.ansible.com.cn/docs/

1、通过Yum安装最新发布版本:
Fedora 用户可直接安装Ansible, 但RHEL或CentOS用户,需要 配置 EPEL

ping www.baidu.com								#首先虚拟机可以上网
yum install epel-release-latest-7.noarch.rpm 	#安装epel源
[root@server1 yum.repos.d]# ls		
epel.repo  epel-testing.repo  redhat.repo  yum.repo
yum install ansible -y							#直接安装,检查好解析及网络yum源

在这里插入图片描述
在这里插入图片描述
2、尝试通过ip连接被管理机

[root@localhost yum.repos.d]# cd /etc/ansible/	#hosts清单文件
[root@localhost ansible]# ls
ansible.cfg  hosts  roles
vim hosts										#添加被管理主机
ssh root@172.25.1.2								#尝试ssh连接
但是ansible测试不成功,需要添加用户密码等信息
172.25.1.2 ansible_port=22 ansible_user=root ansible_ssh_pass=redhat
ansible 172.25.1.2 -m ping						#ansible主机成功ping通管理机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、通过名称连接

server2 ansible_host=172.25.1.2 ansible_port=22 ansible_user=root ansible_ssh_pass=redhat
ansible server2 -m ping

在这里插入图片描述
在这里插入图片描述

4、ansible主机间做免密认证

ssh-keygen
ssh-copy-id root@ip
172.25.1.2 
ansible 172.25.1.2 -m ping

server2 ansible_host=172.25.1.2
ansible server2 -m ping

在这里插入图片描述
5、主机分组管理

ansible all -m ping			#一次性操作清单中所有主机
(1)vim /etc/ansible/hosts
[A]
172.25.1.2
172.25.1.3
[B]
172.25.1.1

ansible A -m ping
ansible B -m ping

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)

vim /etc/ansible/hosts
[A]
172.25.1.[2:3]
[B]
172.25.1.1
ansible A -m ping

(3)

vim /etc/ansible/hosts
[A]
server1
server2
[B]
server3
ansible A -m ping

(4)

vim /etc/ansible/hosts
[proA]
172.25.1.2
[proB]
172.25.1.3
[pro:children]
proA
proB

在这里插入图片描述
三、ansible:yaml语法格式
标记性语言,Yaml强调以数据为中心,并不是以标示语言为重点。因而Yaml本身定义比较简单,号称“一种人性化的数据格式语言”,目的是方便人类读写。实质上是一种通用的数据串行化化格式
我们可以使用Yaml编写配置文件和清单,从而管理受管主机。

all:				#管理所有主机
 hosts:
   172.25.1.1:
   172.25.1.2:

在这里插入图片描述

all:				
#1不属于任何组,主机2属于test1组,主机3属于test2组			
 hosts:
   172.25.1.1:
 children:			#关键字必须有
   test1:
     hosts:
       172.25.1.2:
   test2:
     hosts:
       172.25.1.3

在这里插入图片描述
在这里插入图片描述

all:				#大分组,小分组
 children:
   pro:
     children:			#子组
       proA:
         hosts:
           172.25.1.2:
       proB:
         hosts:
           172.25.1.3:

在这里插入图片描述

all:				#别名管理
 hosts:
   172.25.1.2:
   server3:
   ansible_host: 172.25.1.3
   172.25.1.1:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值