您现在的位置是:首页 > 正文

Ansible安装与配置(自动化运维管理工具) 热门推荐

2024-01-30 22:26:39阅读 0

原文链接:http://blog.csdn.net/xyang81/article/details/51568227

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

一、Ansible工作机制

ansible架构图

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

1> Control Node:控制机器
2> Inventory:主机清单,配置管理主机列表
3> Playbooks:剧本、任务编排。根据规则定义多个任务,模块组织结构清晰,由ansible自动执行。
4> Modules(Core | Custom):模块,用于执行某个具体的任务
5> connection plugin(连接插件):Ansible通过不同的协议连接到远程主机上,执行指定的命令。默认采用ssh协议连接远程主机。

二、Ansible执行流程

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

三、安装Ansible

一台控制主机:192.168.0.202

三台管理主机:

  • 192.168.0.200
  • 192.168.0.201
  • 192.168.0.203

安装要求:

  • 控制服务器:需要安装 Python2.6/2.7
  • 管理服务器:需要安装 Python2.4 以上版本,若低于 Python2.5 需要安装 pythonsimplejson; 若启用了 selinux,则需要安装 libselinux-python。

本次安装基于CentOS7系统环境、Python2.7.5、root用户。

3.1、yum安装(推荐)

yum install epel-release
yum install ansible

3.2、pip安装

pip install ansible

注:pip方式安装不会在/etc/ansible目录下生成默认的相关配置文件

四、配置

控制主机:用于控制其它机器的主机
管理主机:被控制主机管理的主机

4.1、配置管理主机

vim /etc/ansible/hosts

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

配置管理主机

4.2、配置控制主机SSH密钥

4.2.1、在控制主机中生成ssh密钥对
ssh-keygen -t rsa

一路回车即可在$HOME/.ssh目录下生成id_rsa和id_rsa.put私钥和公钥两个文件。

注: 如果在生成密钥的时候设置了密码,ansible每次执行命令的时候,都会提示输入密钥密码,可通过下面的命令记住密码。

ssh-agent bsh
ssh-add ~/.ssh/id_rsa
4.2.2、将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.200
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.201
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.203

注:ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机root用户下.ssh/authorized_keys文件中。

4.2.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

结果如下:

ansible all -m ping运行结果

从上图可以看出,在每台管理机器上都成功执行了ping命令。


一些Ansible深入功能的学习资料:
http://blog.xiaorui.cc/category/ansible/
http://lixcto.blog.51cto.com/4834175/d-4
https://github.com/ansible/ansible-examples
http://rfyiamcool.blog.51cto.com/1030776/d-51
http://dl528888.blog.51cto.com/2382721/d-4/p-1
http://edu.51cto.com/course/course_id-2220.html
http://edu.51cto.com/course/course_id-2032.html

网站文章

  • 在Vue中封装一个select组件 热门推荐

    在Vue中封装一个select组件 热门推荐

    我们使用iview封装一个select组件 封装的是每一个select下拉框 <template> <div class='select'> <i-select :model.sync='selecteddata' :placeholder='placeholdertext' filterable multiple...

    2024-01-30 22:25:59
  • jsp ajax不返回数据,【100分】ajax在jsp页面接受不到数据解决方法

    当前位置:我的异常网» Java Web开发»【100分】ajax在jsp页面接受不到数据解决方法【100分】ajax在jsp页面接受不到数据解决方法www.myexceptions.net网友分享于:2013-03-20浏览:42次【100分】ajax在jsp页面接受不到数据大家帮我看看是哪的问题啊 ,我刚接触ajax-------jsp页面--------var xmlHttp;f...

    2024-01-30 22:25:53
  • jquery autocomplete前后台整合实例(1)

    最近在做项目时需要用到搜索自动提示,例如姓名查找模糊匹配提示。目前Jquery的自动提示插件非常多,我会例举几款,写出一些与后台交互的例子本文介绍一款Jquery autocomplete官方地址:https://github.com/devbridge/jQuery-Autocomplete下面直接来实例,不玩虚的,不参与后台交互的这里就不做介绍了,本文涉及的后台开发语言是java,

    2024-01-30 22:25:44
  • hadoop安装教程,分布式配置 CentOS7 Hadoop3.1.2

    hadoop安装教程,分布式配置 CentOS7 Hadoop3.1.2

    安装前的准备 1、 准备4台机器、或虚拟机 4台机器的名称和IP对应如下 master:192.168.199.128 slave1:192.168.199.129 slave2:192.168.199.130 slave3:192.168.199.131 2、分别为4台机器安装JDK8 步骤详细请参考:CentOS7卸载 OpenJDK 安装Sun的JDK...

    2024-01-30 22:25:11
  • 【OpenCV3】阈值化操作——cv::threshold()与cv::adaptiveThreshold()详解

    【OpenCV3】阈值化操作——cv::threshold()与cv::adaptiveThreshold()详解

    阈值化操作在图像处理中是一种常用的算法,比如图像的二值化就是一种最常见的一种阈值化操作。opencv2和opencv3中提供了两种阈值化操作接口,即cv::thread()与cv::adaptiveThreshold(),这里将对这两个接口进行介绍和对比。

    2024-01-30 22:25:04
  • 基于darknet的目标检测开发说明书

    1. 测试darknet1) 利用python版本的darknet清楚YOLO V3的输出.其中要修改一下加载meta数据集, 即*.data中的*.names文件路径. 在测试过程中, 我们将用到meta.classes, meta.names. 这些信息都在*.data中定义了. 经过测试, 对于一张头像而言, YOLO V3的输出格式为:[('car', 0.9995980858802...

    2024-01-30 22:24:58
  • paxos算法java实现_基于python的Paxos算法实现

    paxos算法java实现_基于python的Paxos算法实现

    理解一个算法最快,最深刻的做法,我觉着可能是自己手动实现,虽然项目中不用自己实现,有已经封装好的算法库,供我们调用,我觉着还是有必要自己亲自实践一下。这里首先说明一下,python这种动态语言,对不熟...

    2024-01-30 22:24:41
  • android studio 集成ffmpeg_android下vulkan与opengles纹理互通

    android studio 集成ffmpeg_android下vulkan与opengles纹理互通

    先放demo源码地址:https://github.com/xxxzhou/aoce 06_mediaplayer效果图:主要几个点:用ffmpeg打开rtmp流。使用vulkan Compute s...

    2024-01-30 22:24:11
  • Babel转码器入门

    Babel转码器入门

    Babel转码

    2024-01-30 22:24:05
  • 谈谈代码中的this

      js中我们常常会遇到this,this的具体指向问题对于很多同学来说是很懵懂的;就想lz刚开始接触时候就是一脸的懵逼,经常被一些题目转的眼花缭乱。那么今天lz就跟大家一起交流一下这个this的指向问题!  背景:不久前有个同事给我们发了一道有关this的题目,于是便有了今天的故事。如下题:class D0XX { constructor () { this...

    2024-01-30 22:23:58