ansible介绍及部署

ansible简介

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

ansible的优点

1.ansible融合了众多老牌运维工具的优点,基本上pubbet和saltsatck能实现的功能,ansible都可以显现。

2.轻量级,无需在客户端上安装agent,更新时,只需要在操作机上进行一次更新即可。

3.ansible是一个轻量级的工具,ansible不需要启动服务,仅仅只是一个工具,可以轻松实现分布式扩展。

4.批量任务执行可以写成脚本,而且不用分发的远程就可以执行。

5.ansible是一致性,高可靠性,安全性设计的轻量级自动化工具。

6.使用python编写,维护更加简单。

ansible基本架构

ansible介绍及部署_第1张图片

上图为ansible的基本架构,从上图可以了解到其由以下部分组成

核心:ansible
核心模块(Core Modules):这些都是ansible自带的模块
扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块
插件(Plugins):完成模块功能的补充
剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行
连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件
主机群(Host Inventory):定义ansible管理的主机

ansible安装

在管理主机上面使用 yum 安装 Ansible。因为安装 Ansible 需要 epel 源,这里配置了阿里的 yum 源和 epel 源。

cd /etc/yum.repos.d/

yum源

vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

epel源

vi epel.repo

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
安装 Ansible:
# yum install ansible

安装完成,查看版本:

[root@ansible-manager ~]# ansible --version
ansible 2.5.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
Ansible配置文件

安装完毕,可以修改默认配置,一般不需要修改。

vi /etc/ansible/ansible.cfg

[defaults]

# some basic default values...

#inventory      = /etc/ansible/hosts                   # 清单(Inventory)文件的位置
#library        = /usr/share/my_modules/               # 存放 Ansible 模块的目录
#module_utils   = /usr/share/my_module_utils/       
#remote_tmp     = ~/.ansible/tmp                        # 临时文件远程主机存放目录
#local_tmp      = ~/.ansible/tmp                        # 临时文件本地存放目录
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks          = 5                                     # 默认并发数
#poll_interval  = 15                                    # 默认轮询时间间隔
#sudo_user      = root                                  # 默认sudo用户
#ask_sudo_pass = True                                   # 是否需要sudo密码
#ask_pass      = True                                   # 是否需要密码
#transport      = smart
#remote_port    = 22                                    #指定连接被管理主机的管理端口,默认是22
#module_lang    = C
#module_set_locale = False

`

你可能感兴趣的:(ansible)