Ansible自动化运维工具使用详解

一、 ansible 简介

1. ansible

ansible是新出现的 自动化 运维工具 基于Python研发 糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。 仅需在管理工作站上安装 ansible 程序配置被管控主机的 IP 信息,被管控的主机无客户端。 ansible 应用程序存在于 epel( 第三方社区 ) 源,依赖于很多 python 组件

Ansible自动化运维工具使用详解

2.ansible 特性

模块化 设计 ,调用特定的模块来完成特定任务 ,本身是核心组件,短小精悍

基于Python语言实现,由Paramiko (python 的一个可并发连接 ssh 主机功能库 ) , PyYAML和Jinja2 ( 模板化 ) 三个关键模块实现;

部署简单,agentless 无客户端工具;

主从模式 工作;

支持自定义模块 功能;

支持playbook 剧本,连续任务按先后设置顺序完成;

期望每个命令具有 幂等性:

3.ansible 架构

ansible core ansible 自身核心模块

host inventory: 主机库,定义可管控的主机列表

connection plugins: 连接插件,一般默认基于 ssh 协议连接

modules:core modules ( 自带模块 ) custom modules ( 自定义模块 )

playbooks :剧本,按照所设定编排的顺序执行完成安排任务

Ansible自动化运维工具使用详解

4. 配置 文件:

(1)ansible 应用程序的 主配置文件:/etc/ansible/ansible.cfg

(2) Host Inventory 定义管控主机 :/etc/ansible/hosts

遵循 INI风格;中括号中的字符是组名;一个主机可同时属于多个组;

示例:

# Ex 1: Ungrouped hosts, specify before any groupheaders. 直接在任何组的头部前面指定,不属于任何组的主机

green.example.com

blue.example.com

192.168.100.1

192.168.100.10

# Ex 2: A collection of hosts belonging to the'webservers' group ;一批主机属于一个组,例如定义为 'webservers' 的组

[webservers]

alpha.example.org

beta.example.org

192.168.1.100

192.168.1.110

注意:默认是以 root 用户执行,但是基于 ssh 连接操作要多次输入密码,为方便可以使用基于 ssh 密钥方式进行认证

二、 ansible 应用程序命令

1. ansible-doc命令:获取模块列表,及模块使用格式;

ansible-doc -l :获取列表

ansible-doc -s  module_name :获取指定模块的使用信息

2.ansible 命令格式

ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]

<host-pattern>

 

指明管控主机,以模式形式表示或者直接给定 IP ,必须事先定义在文件中; all 设置所有

 

[-f forks]

 

指明每批管控多少主机,默认为 5 个主机一批次

 

[-m module_name]

 

使用何种模块管理操作,所有的操作都需要通过模块来指定

 

[-a args]

 

指明模块专用参数; args 一般为 key=value 格式

注意:command模块的参数非为kv格式,而是直接给出要执行的命令即可;

 

注意: <host-pattern> 默认读取 /etc/ansible/hosts ,也可以指明自定义文件路径

-iPATH, --inventory=PATH:指明使用的host inventory文件路径;

常用模块 (module_name)

1) command:默认模块 ,可省略。在远程主机上进行操作命令

-a  'COMMAND'

注意: comand 模块的参数非 key=value 格式,直接给出要执行的命令

[root@localhost ~]# ansible all -m command -a  'ifconfig'

2)user:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1b053cd0cb16020cfbbbdaaf434be1ae.html