ansible自动化批量部署工具

Ansible简介

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

Ansible基于Python开发,底层拥有python三大模块 :

paramiko
jinja2
yaml

1.总体构架

在这里插入图片描述

Ansible:Ansible的核心程序
Host Lnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root账号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:yaml格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能。
Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Cinnection Plugins:连接插件,Ansible和Host通信使用

2.工作原理:

ansible加载hosts文件,通过免秘钥或配置文件参数来批量管理主机
agent:ansibel不需要客户端或agent(代理)

3.Ansible优点:
  1. Stupied Simple,上手简单,学习曲线平滑
  2. SSH by default,安全,无需安装客户端
  3. 配置简单、功能强大、扩展性强
  4. 支持API及自定义模块。可通过Python轻松扩展
  5. 通过Playbooks来定制强大的配置、状态管理
  6. 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
  7. 幂等性:一种操作重复多次结果相同
4.ansible安装
yum install epel-release -y
yum install ansible -y
5.ansible server管理客户端的两种配置方法
ansible server :192.168.30.30
受管理的客户端1:192.68.30.149
受管理的客户端2:192.68.30.150

第一种方法:
ansible server :ssh-keygen

[root@c1 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): id_rsa.pub
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in id_rsa.pub.
Your public key has been saved in id_rsa.pub.pub.
The key fingerprint is:
SHA256:8E0RUOqcAZCmrA0eyOaa9O8rLbyAe2IpfPv8R8xvIL0 root@c1
The key's randomart image is:
+---[RSA 2048]----+
|    .o. .o+.     |
|    o  . . .     |
|o. o  . o .      |
|o+o    = =       |
|++.     S .      |
|o+.    . *       |
|=o+ .   o +      |
|==o*..   E o     |
|+o.oO*o.. .      |
+----[SHA256]-----+

scp id_rsa.pub root@client ip:/root/.ssh/authorized_keys

[root@c1 ~]# scp /root/.ssh/id_rsa.pub root@192.168.30.149:/root/.ssh/authorized_keys 
root@192.168.30.149's password: 
id_rsa.pub                                              100%  389   411.2KB/s   00:00
[root@c1 ~]# scp /root/.ssh/id_rsa.pub root@192.168.30.151:/root/.ssh/authorized_keys 
root@192.168.30.151's password: 
id_rsa.pub                                              100%  389    11.2KB/s   00:00 

ansible配置

[root@c1 ~]# vim /etc/ansible/ansible.cfg
......
remote_port    = 22          #ssh端口号默认22,如果改的话ssh配置的端口号也得改
......
private_key_file = /root/.ssh/id_rsa    #私钥文件路径
......

配置受管理的客户端组

[root@c1 ~]# vim /etc/ansible/hosts
......
#在最后添加
[testhosts]
192.168.30.149    
192.168.30.151

ansible连通性测试:

[root@c1 ~]# ansible testhosts -m ping
192.168.30.149 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
192.168.30.151 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

执行命令测试:

[root@c1 ~]# ansible testhosts -m command -a 'uptime'

注意:第一次执行,需要输入yes来验证公钥,后续无需再输入
再次执行

<
  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值