Ansible 安装与配置(一)
公司大概有200多云主机需要进行管理,但是如果通过手工管理费时还累最终结果也容易出错,所以考虑通过自动化的方式来管理云主机,目前开源的自动化工具,大家用的比较多的有Ansible和Saltstack这两种,其实还有其他的只是相对于来说已经没有这两个那么常用,我这边最早接触到的是ansible所以公司采用了ansible来管理主机,下面我们介绍下ansible的安装配置。
一、环境的准备
1.Python2.6+:Ansible 是基于Python开发,所以我们控制主机需要安装Python2.6以上版本;
2.Jinja2:定义模板的时候使用Jinja2,而Jinja2是Python的现代模板语言;
3.PyYAML:写Playbook时候定义的文件类型是ymal,而PyYAML是Python 的一个 YAML 编码/反编码函数库,;
4.paramiko:Ansible 默认是基于SSH协议通信,而paramiko纯 Python 编写的 SSHv2 协议函数库;
5.httplib2:一个功能全面的 HTTP 客户端函数库;
二、Ansible 安装
Ansible 默认基于SSH协议通信,安装Ansible以后控制主机不需要启动或者后台运行任何的Ansible进行,只需要在控制主机安装Ansible,这样可以通过Ansible来管理任何一个被控节点,同时被控节点不需要安装任何客户端软件;
1.源码安装
# git clone git://github.com/ansible/ansible.git --recursive
# cd ./ansible
# source ./hacking/env-setup
2.yum/apt 安装
yum install ansible
apt-get install ansible
3.pip安装
pip install ansible
4.检查下ansible 是否安装成功
ansible --version
返回ansbile 版本信息
ansible 2.4.2.0
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./site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.6. (r266:, Aug , ::) [GCC 4.4. (Red Hat 4.4.-)]
5.Ansible 命令集
ansible # 定义ansible 单任务
ansible-config # 查看、编辑、管理Ansible配置
ansible-doc # 文档查看工具
ansible-galaxy # 共享、下载roles的工具
ansible-inventory # 查看Inventory主机信息
ansible-playbook # 执行playbook
ansible-pull # 仓库中拉去playbook
ansible-vault # 文件加密、解密工具
ansible-console # ansible 控制台
三、配置运行环境
1.配置Ansible的环境
运行Ansible命令时,命令将按照预先设定的顺序先后查找配置文件
I.首先Ansible 会检查环境变量是否设置ANSIBLE_CONFIG,以及检查变量指向文件的路径;
II.检查当前目录下是否包含ansible.cfg配置文件;
III.再次检查当前用户的主目录是否包含ansible.cfg配置文件;
IV.最后检查/etc/ansible 目录下是否包含ansible.cfg配置文件,一般通过软件管理包(yum/apt)安装时会自动在etc目录下生成配置文件;
注意:
通过pip安装时候,不会生成完成的ansible.cfg配置文件,此时我们需要从github仓库中examples目录下拷贝ansible.cfg配置文件;
2.Ansible 主要配置文件
/etc/ansible/ansible.cfg #Ansible 配置文件
/etc/ansible/hosts #主机清单
/etc/ansible/roles/ #角色路径
四、Ansible Inventory
实际过程中我们需要管理不同业务,不同环境中的各种服务器资源,这些服务器的信息主要存储在Inventory 组件里面,ansible.cfg中默认定义配置文件的路径/etc/ansible/hosts;
1.定义主机和主机组
下面我们来/etc/ansible/hosts 文件中定义主机和主机组
# Ex : 定义主机
192.168.100.10
# Ex :定义 'WebServers' 主机组
[WebServers]
10.172.139.53
10.30.49.72
10.30..[:] # 一组类似IP地址简写模式
说明:
方括号[]中表示的组名字,主要用于不同类别的系统进行分类,便于对同一类的服务器资源进行管理;
2.主机和主机组变量
# 定义主机变量
10.30.49.72 ansible_port='' #定义ssh远程端口
# 定义主机组变量
# 下面的变量属于整个WebServers组
[WebServers:vars]
ansible_ssh_pass='ansible'
ansible_ssh_port=''
3.Inventory 常用参数说明
ansible_ssh_host # 连接的远程主机名. ansible_ssh_port # SSH远程连接端口,非标准端口设置. ansible_ssh_user # SSH远程连接用户名 ansible_ssh_pass # SSH远程连接账号对应密码 (这种方式并容易泄露密码信息,建议使用 --ask-pass或者SSH认证) ansible_sudo_pass # sudo用户密码(这种方式并容易泄露密码信息,烈建议使用 --ask-sudo-pass)
五、编写第一个Ansible 程序
Ansible 安装完成以后,我们基本的了解了Ansible的配置方式,下来我们编写下第一个Ansible 程序
示例1:测试WebServers 服务器组连通信
ansible WebServers -m ping -o
主机/主机组 模块
返回结果:
39.105.0.244 | SUCCESS => {"changed": false, "ping": "pong"}
47.104.149.180 | SUCCESS => {"changed": false, "ping": "pong"}
示例2:WebServers /opt 目录下创建ansible.txt文件
ansible 47.104.149.180 -m file -a "owner=root group=root mode=644 path=/opt/ansible.txt state=touch" -o 主机/主机组 模块 参数 返回结果: 47.104.149.180 | SUCCESS => {"changed": true, "dest": "/opt/ansible.txt", "gid": , "group": "root", "mode": "", "owner": "root", "size": , "state": "file", "uid": }
通过以上的例子,我们大概了了解了通过Ansible的命令来管理服务器,具体的模块信息和参数后面介绍,这里我们只是来体会下Ansible的便捷性,这样我们完成了Ansible的安装和配置。
Ansible 安装与配置(一)的更多相关文章
- 服务器批量管理软件ansible安装以及配置
1.yum安装(管理主机以及被管理主机都需要安装) yum install epel-release yum install ansible 2.配置管理主机 vim /etc/ansible/hos ...
- 15.Ansible安装与配置简单版
Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...
- 1.Ansible安装以及配置
本节内容以Centos7为系统环境进行讲解: 1.安装epel源,方便直接yum安装: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun ...
- Ansible安装及配置
ansible分为以下几个部份: Ansible:核心引擎 Modules:包括 Ansible 自带的核心模块(core modules)及自定义模块 (custom modules): 核心模块: ...
- ansible安装和配置
一.安装ansible准备 //安装准备 .两台机器 172.7.15.106 172.7.15.111 .设置hostname以及hosts 172.7.15.106 web9.lulu.com 1 ...
- ansible安装、配置ssh、hosts、测试连接
.安装ansible 1.1.源码安装 源码安装参照 https://www.cnblogs.com/guxiong/p/7218717.html [root@kube-node3 ~]# .tar. ...
- Ansible安装 入门教程
learn一门新技术咯: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置 ...
- Ansible安装部署及常用模块详解
Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...
- Ansible安装配置Nginx
一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...
随机推荐
- dubbo的常用配置(基于注解)
之前记录了基于springboot的dubbo入门案例,今天在此基础上记录dubbo官网介绍的常用属性配置,dubbo读取我们配置的属性时是有优先级的,优先级如下图: 如图所示,优先级的属性依次为虚拟 ...
- 将 Range 对象赋给变量
有多种方法将现有的 Range 对象赋给变量.本主题对两种不同的方法进行了阐述.在下列示例中,将 Range 对象赋给变量 Range1 和 Range2.例如,下列指令将活动文档中的第一个和第二个单 ...
- [JsonSchema] 关于接口测试 Json 格式比对核心算法实现 (Java 版)
引言 为什么要自己重新造轮子,而不是采用第三方的JsonSchema方法进行实现存在以下痛点:1.我之前在网上找了很久,没有找到java版直接进行jsonschema生成的方法或直接比较的方法2.ht ...
- Arcgis做出voronoi图
人类第一步,,,我需要给我目前的基站点数据划分voronoi,预期得到每个基站的服务范围 在地统计模块geostatistical analysis 下面的数据探索expore就有Voronoi图 将 ...
- IDEA 自动生成Hibernate实体类和Mapping文件
一.新建工程Demo(如果选的时候勾选了hibernate,IDEA会自动下载Hibernate包,不需要手动导入) 二.导入相关包 Mysql && Hibernate 三.添加Hi ...
- python学习笔记——(二)循环
·密文输入引入getpass库使用getpass.getpass("password:")tips:该功能在PyCharm中不好使,只能在命令行用 ·python强制缩进,省略了大 ...
- YOLOv3训练自己的数据
1. 下载预训练权重文件 YOLOv3使用在Imagenet上预训练好的模型参数(文件名称: darknet53.conv.74,大小76MB)基础上继续训练. darknet53.conv.74下 ...
- reducer 按key聚合
#coding=utf8 import sys import itertools import json reload(sys) sys.setdefaultencoding("utf8&q ...
- Spark SQL / Catalyst 内部原理 与 RBO
原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自技术世界,原文链接 http://www.jasongj.com/spark/rbo/ 本文所述内容均基于 2018年9月10日 Spark ...
- Python3.7和数据库MySQL 8.0.12 绿色解压 安装教程(一)
首先要安装MySQL 数据库才可以继续安装图形工具SQLyog 第一步:下载解压包>> MYSQL官网地址:https://dev.mysql.com/downloads/file/?id ...