Ansible框架、安装和简单使用

什么是Ansible

       ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的.

ansible特点

  1. 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作
  2. 默认使用SSH协议对设备进行管理
  3. 有大量常规运维操作模块,可实现日常绝大部分操作
  4. 配置简单、功能强大、扩展性强
  5. 支持API及自定义模块,可通过Python轻松扩展
  6. 通过Playbooks来定制强大的配置、状态管理
  7. 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可
  8. 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台

Ansible架构

         ansible系统由控制主机和被管理主机组成,控制主机不支持windows平台

Ansible框架、安装和简单使用_第1张图片

 Ansible:Ansible核心程序

HostInventory:记录Ansible管理的主机信息,包括端口、密码、ip等

Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能

Core Modules:核心模块,主要操作是通过调用核心模块来完成管理任务

Custom Modules :自定义模块,完成核心模块无法完成的功能,支持多种语言

Connection Plugins:连接插件,Ansible和Host通信使用

Ansible的安装

 

#安装
[root@localhost ~]# yum -y install eple-release
[root@localhost ~]# yum -y install ansible
[root@localhost ~]# ansible --version    查看版本信息
ansible 2.9.23
  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, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

Ansible的配置文件

  1. 主配置文件:/etc/ansible/ansible.cfg
  2. 默认主机清单文件:/etc/ansible/hosts
Ansible配置文件说明

配置文件种类   

说明 所在位置
默认配置文件 ansible的默认配置文件对所有使用ansible的用户生效 /etc/ansible/ansible.cfg
用户配置文件 使用普通用户的执行特定的运维playbook,只要使用该用户登录ansible运维主机,不管在任何文件夹下,该配置文件将会覆盖默认配置文件的内容 ~/ansible.cfg
运维项目配置文件 把一类运维playbook放在一个文件夹中,仅仅在当前的运维项目中生效的配置文件 /dir/ansible.cfg

当三种文件发生冲突时,优先级:运维项目配置文件>用户配置文件>默认配置文件

Ansible的简单使用

[root@localhost ~]# ansible localhost -m ping   检查可达性
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
[root@localhost ~]# ansible localhost -m user -a "name=yyy"  创建用户
localhost | CHANGED => {
    "changed": true, 
    "comment": "", 
    "create_home": true, 
    "group": 1001, 
    "home": "/home/yyy", 
    "name": "yyy", 
    "shell": "/bin/bash", 
    "state": "present", 
    "system": false, 
    "uid": 1001
}

你可能感兴趣的:(Ansible框架、安装和简单使用)