Ansible简介及作用


一.Ansible简介:

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
    (1)、连接插件connection plugins:负责和被监控端实现通信;
    (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
    (3)、各种模块核心模块、command模块、自定义模块;
    (4)、借助于插件完成记录日志邮件等功能;
    (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

二.Ansible的特性:

模块化:调用特定的模块,完成特定任务
有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块
支持自定义模块
基于Python语言实现
部署简单,基于python和SSH(默认已安装),agentless
安全,基于OpenSSH
支持playbook编排任务
幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
无需代理不依赖PKI(无需ssl)
可使用任何编程语言写模块
YAML格式,编排任务,支持丰富的数据结构
较强大的多层解决方案

三.Ansible工作原理:

1.管理端支持local 、ssh、zeromq 三种方式连接被管理端,默认使用基于ssh的连接---这部分对应基本架构图中的连接模块;

2.可以按应用类型等方式进行Host Inventory(主机群)分类,管理节点通过各类模块实现相应的操作---单个模块,单条命令的批量执行,我们可以称之为ad-hoc;

3.管理节点可以通过playbooks 实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为,系统通过组合多条ad-hoc操作的配置文件

基本架构图

CentOS7怎么重启ansible centos ansible_运维

-

官方EPEL源配置


一.EPEL的概念

EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

二.RPM安装EPEL

1.进入官网

http://mirrors.kernel.org/fedora-epel/

2.查找所需要的版本(这里选择的是centos7)复制链接地址

CentOS7怎么重启ansible centos ansible_运维_02

3.在终端输入命令用RPM下载

rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm

yum安装Ansible


一.安装条件

已装好epel、python2.7,在root用户条件下
    机器环境
一台控制主机:192.168.1.130
一台管理主机:192.168.1.134

二.yum安装

yum install epel-release
    yum install ansible

1.配置管理主机

vim /etc/ansible/hosts  
在hosts文件中添加管理主机的IP地址列表

CentOS7怎么重启ansible centos ansible_CentOS7怎么重启ansible_03

2.配置控制主机SSH密钥

ssh-keygen -t rsa

一路回车即可在cd ~/.ssh目录下生成id_rsa和id_rsa.put私钥和公钥两个文件。
注: 如果在生成密钥的时候设置了密码,ansible每次执行命令的时候,都会提示输入密钥密码,可通过下面的命令记住密码。

3.将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机

ssh-copy-id -i id_rea.pub root@192.168.1.134

注:ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机root用户下.ssh/authorized_keys文件中。

三.ansible配置

vim /etc/ansible/ansible.cfg

1.禁用每次执行ansbile命令检查ssh keyhost
    host_key_checking = False(默认禁用)

2. 开启日志记录
log_path = /var/log/ansible.log(去掉前面的 "#" )

3.ansible连接加速配置

CentOS7怎么重启ansible centos ansible_Ansible_04

四.测试

最后测试下在管理机器批量执行一个ping命令

ansible all -m ping

CentOS7怎么重启ansible centos ansible_Ansible_05

(如若报错,在cd ~/.ssh中操作)

1.ssh-keygen -t rsa
    2.成功后在~/.ssh/路径下将生成ssh密钥文件:id_rsa及id_rsa.pub
    3.ssh-copy-id  -i root@目标节点IP
    4.ansible all -m ping