自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。

目录:

一、ansible简介

1.1、ansible是什么

1.2、ansible如何工作

1.3、ansible优缺点

1.4、ansible安装方式

1.5、ansible文件简单介绍

1.6、ansible简单使用

二、ansible-shell简介

2.1、ansible-shell是什么

2.2、ansible-shell安装方式

2.3、ansible-shell简单使用

三、使用ansible的authorized_key模块批量推送公钥到远程主机

3.1、生产秘钥对

3.2、使用ansible-playbook来生成推送公钥

四、相关站点的推荐




废话不多说,开始上干货。。。。大笑

一、ansible简介
1.1、ansible是什么

ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。




下面这是摘自36氪的一段介绍,很详细:

AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建。其Ansible平台是一个开源的配置及计算机管理平台。可实现多节点的软件部署,执行特定任务并进行配置管理。

Ansible跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的界面来协调所有的IT自动化功能,因此Ansible的系统更加易用,部署更快。受管理的节点无需安装额外的远程控制软件,由平台通过SSH(Secure SHell)对其进行管理,因此十分方便。其模块支持JSON等标准输出格式,可采用任何编程语言重写。

Ansible可以让用户避免编写脚本或代码来管理应用,同时还能搭建工作流实现IT任务的自动化执行。IT自动化可以降低技术门槛及对传统IT的依赖,从而加快项目的交付速度。

目前,Ansible已有30万用户,每月下载量接近3万次。其客户包括AppDynamics、Evernote 、MapR以及金融服务、电信、医疗保健、媒体业的财富500强公司。


项目地址: https://github.com/ansible/ansible
商业版: http://www.ansibleworks.com/

免费版:http://www.ansibleworks.com/docs/


1.2、ansible如何工作:
Ansible默认是通过SSH通道来管理的,也就是它所说的免客户端方式管理, 它底层是通过 paramiko 来实现的。   
对Ansible底层工作机制感兴趣的可以参考这个: http://www.the5fire.com/explore-the-ansible.html

ansible执行过程大体过程如下图,其中暖色调的代表已经模块化。

wKiom1N1faXDDKHyAAJ2qmuQi9E804.jpg

图片来源于:http://ju.outofmemory.cn/entry/67581


1.3、ansible优缺点

ansible有如下优点:       
1.3.1、轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可        
1.3.2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行        
1.3.3、使用python编写的,维护更简单        
1.3.4、支持sudo

缺点:       
1.3.5、对于几千台、上万台机器的操作,还不清楚性能、效率情况如何,需要进一步了解。        

1.4、ansible安装方式
1.4.1、安装前提

Control Machine Requirements

Currently Ansible can be from any machine with Python 2.6 installed (Windows isn’t supported for the control machine).


This includes Red Hat, Debian, CentOS, OS X, any of the BSDs, and so on.


Managed Node Requirements

On the managed nodes, you only need Python 2.4 or later, but if you are are running less than Python 2.5 on the remotes, you will also need:


python-simplejson


1.4.2、源码安装
源码地址: https://pypi.python.org/packages/source/a/ansible/ ansible-1.5.5.tar.gz
1.4.3、pip安装
1.4.4、yum安装
1
2
3
4
[root@ansible ~]#
[root@ansible ~]# rpm -qa | grep ansible  # 检查是否安装
ansible-1.5.3-1.el6.noarch
[root@ansible ~]# yum install ansible -y  # 没有安装的话,使用这个安装即可


1.5、ansible组成介绍
1.5.1、包含文件介绍
1
2
3
4
5
6
[root@ansible ~]# tree /etc/ansible/
/etc/ansible/
├── ansible.cfg  # ansible的配置文件
└── hosts             # ansible的主仓库 用来存储需要管理的远程主机的相关信息
0 directories, 2 files
[root@ansible ~]#
1.5.2、ansible其他组件介绍

你可能感兴趣的:(企业级应用,自动化,ansible,playbook,批量推送公钥)