15.Ansible安装与配置简单版

Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用、安装软件、执行命令、配置和编排任务。

 

一、Ansible工作机制

 

从图中可以看出ansible分为以下几个部份:

1) Control Node:控制机器

2) Inventory:主机清单,配置管理主机列表

3) Playbooks:剧本、任务编排。根据规则定义多个任务,模块组织结构清晰,由ansible自动执行。

4) ModulesCore | Custom):模块,用于执行某个具体的任务

5) connection plugin(连接插件):Ansible通过不同的协议连接到远程主机上,执行指定的命令。默认采用ssh协议连接远程主机。

 

二、Ansible执行流程

 

简单理解就是Ansible在运行时,首先读取ansible.cfg中的配置,根据规则获取Inventory中的管理主机列表,并行的在这些主机中执行配置的任务,最后等待执行返回的结果。

 

三、安装Ansible

一台控制主机:192.168.1.103

三台管理主机:

192.168.1.101

192.168.1.102

192.168.1.103

安装要求:Python2.6/2.7

 

yum安装(推荐)

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install ansible

 

四、配置

控制主机:用于控制其它机器的主机

管理主机:被控制主机管理的主机

1配置管理主机

vim /etc/ansible/hosts

hosts文件中添加管理主机的IP地址列

192.168.1.101

192.168.1.102

192.168.1.103

2、配置控制主机SSH密钥

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.101

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.102

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.103

3ansible配置

vim /etc/ansible/ansible.cfg

1)禁用每次执行ansbile命令检查ssh key host

host_key_checking = False

2)开启日志记录

log_path = /var/log/ansible.log

3)ansible连接加速配置

[accelerate]

#accelerate_port = 5099

accelerate_port = 10000

#accelerate_timeout = 30

#accelerate_connect_timeout = 5.0

 

# If set to yes, accelerate_multi_key will allow multiple

# private keys to be uploaded to it, though each user must

# have access to the system via SSH to add a new key. The default

# is "no".

accelerate_multi_key = yes

 

五、测试

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

ansible all -m ping

192.168.1.103 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

192.168.1.101 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

192.168.1.102 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

 

ansible程序结构

安装目录

通过使用rpm -ql ansible指令可以查看ansible安装的所有文件位置!

配置文件目录:/etc/ansible/

执行文件目录:/usr/bin/

Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/

Help文档目录:/usr/share/doc/ansible-X.X.X/

Man文档目录:/usr/share/man/man1/

 

ansible配置文件

设置/etc/ansible/ansible.cfg配置参数,ansible有许多参数,下面列出常用的参数:

inventory#这个参数表示资源清单inventory文件的位置,资源清单就是一些ansible需要连接管理的主 机列表。这个参数的配置实例如下:

inventory = /etc/ansible/hosts

libraryansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放ansible模块的目录。配置实例如下:

library = /usr/share/ansible

 

ansible命令集

/usr/bin/ansible    # Ansibe AD-Hoc 临时命令执行工具,常用于临时命令的执行

/usr/bin/ansible-doc    # ansible 模块功能查看工具

/usr/bin/ansible-galaxy     # 下载/上传优秀代码或Roles模块 的官网平台,基于网络的

/usr/bin/ansible-playbook   # ansible 定制自动化的任务集编排工具

/usr/bin/ansible-pull # ansible远程执行命令的工具,拉取配置而非推送配置(使用较少,海量机器时使用,对运维的架构能力要求较高)

/usr/bin/ansible-vault # ansible 文件加密工具

/usr/bin/ansible-console # ansible基于Linux Consoble界面可与用户交互的命令执行工具

 

ansible命令详解

###命令格式:

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

ansible -h

 

posted @ 2019-08-01 18:58  AllenHU320  阅读(191)  评论(0编辑  收藏  举报