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

一、Ansible工作机制

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

1) Control Node:控制机器

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

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

4) Modules(Core | 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

3、ansible配置

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

library: ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个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

15.Ansible安装与配置简单版的更多相关文章

  1. 下载文件时-修改文件名字 Redis在Windows中安装方法 SVN安装和使用(简单版) WinForm-SQL查询避免UI卡死 Asp.Net MVC Https设置

    下载文件时-修改文件名字   1后台代码 /// <summary> /// 文件下载2 /// </summary> /// <param name="Fil ...

  2. 服务器批量管理软件ansible安装以及配置

    1.yum安装(管理主机以及被管理主机都需要安装) yum install epel-release yum install ansible 2.配置管理主机 vim /etc/ansible/hos ...

  3. SVN安装和使用(简单版)

    为什么使用SVN? 通常软件的开发需要团队协作开发,每个人负责一个方面,都做完后需要把每个人的代码整合在一起,而每个人的代码方面不同或版本不同就会拖延开发进度对开发项目造成麻烦,如果一个人需要另一个人 ...

  4. Ansible 安装与配置(一)

    公司大概有200多云主机需要进行管理,但是如果通过手工管理费时还累最终结果也容易出错,所以考虑通过自动化的方式来管理云主机,目前开源的自动化工具,大家用的比较多的有Ansible和Saltstack这 ...

  5. Ansible安装及配置

    ansible分为以下几个部份: Ansible:核心引擎 Modules:包括 Ansible 自带的核心模块(core modules)及自定义模块 (custom modules): 核心模块: ...

  6. 1.Ansible安装以及配置

    本节内容以Centos7为系统环境进行讲解: 1.安装epel源,方便直接yum安装: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun ...

  7. ansible安装和配置

    一.安装ansible准备 //安装准备 .两台机器 172.7.15.106 172.7.15.111 .设置hostname以及hosts 172.7.15.106 web9.lulu.com 1 ...

  8. Ubuntu server 16.04的安装 以及配置(服务器版)

    1.在电脑上下载最新版本的Ubuntu服务器ISO映像,刻录到CD或创建一个可启动的USB盘. 2.视情况而定,进入到服务器的boot界面,把cd或者usb设置为启动第一项 3.开始安装   1)Ub ...

  9. MySQL8.0.15的安装与配置---win10

    1.下载地址 https://dev.mysql.com/downloads/installer/ 安装文件:mysql-installer-community-8.0.15.0.msi 2.安装 默 ...

随机推荐

  1. navicat连接远程数据库报错'client does not support authentication protocol requested by server consider ...'解决方案

    [1.cmd终端连接远程mysql数据库方法] mysql -uhello -pworld   -h192.168.1.88 -P3306 -Dmysql_oa mysql -u用户名 -p密码 -h ...

  2. 最全的tcpdump使用详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  3. HRNET网络结构简单分析

    hrnet相关的两篇文章 CVPR2019   Deep High-Resolution Representation Learning for Human Pose Estimation High- ...

  4. insmod mknod

    insmod module 會在 /proc/devices/ 下產生 major number 及 device name ---------------------------- mknod 會使 ...

  5. go一个简单的爬虫(豆瓣)

    最近在学习go语言爬虫,写了个小demo package main import ( "fmt" "io/ioutil" "net/http" ...

  6. Servlet的概述

    A: Servlet的概述: server applet , 是一个运行在服务器端的小应用程序 B: 就是一个接口,作用: servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web ...

  7. DIV+CSS 让同一行的图片和文字对齐【转藏】

    DIV+CSS 让同一行的图片和文字对齐 DIV+CSS 让同一行的图片和文字对齐 在div+css布局中,如果一行(或一个DIV)内容中有图片和文字的话,图片和文字往往会一个在上一个在下,这是一个新 ...

  8. Visual Studio Code 调试 SpringBoot

    Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based appl ...

  9. 360安全卫士11.0史上最小版发布,去流氓,最精简,300MB内存轻松运行。完全不拖慢电脑的速度,由王宁诚意发布。

    360安全卫士11.0史上最小版发布,也是史上最快版本.大家可能都不喜欢360,为什么?因为360太流氓,而大家想过如果360去掉了流氓会怎么样?对,那样360就会变成一个性能可以超过知名杀毒软件-s ...

  10. 十步学习法 -- 来自<<软技能>>一书的学习方法论

    <<软技能>>第三篇“学习”,作者讲述了自己的学习方法:十步学习法.下面我用编程语言的方式来介绍. 十步学习法 伪代码介绍 # **这一步的目的不是要掌握整个主题,而是对相关内 ...