公司大概有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.源码安装

  1. # git clone git://github.com/ansible/ansible.git --recursive
  2. # cd ./ansible
  3. # source ./hacking/env-setup

  2.yum/apt 安装

  1. yum install ansible
  2. apt-get install ansible

  3.pip安装

  1. pip install ansible

  4.检查下ansible 是否安装成功

  1. ansible --version

 返回ansbile 版本信息

  1. ansible 2.4.2.0
  2. config file = /etc/ansible/ansible.cfg
  3. configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  4. ansible python module location = /usr/lib/python2./site-packages/ansible
  5. executable location = /usr/bin/ansible
  6. python version = 2.6. (r266:, Aug , ::) [GCC 4.4. (Red Hat 4.4.-)]

  5.Ansible 命令集

  1. ansible # 定义ansible 单任务
  2. ansible-config # 查看、编辑、管理Ansible配置
  3. ansible-doc # 文档查看工具
  4. ansible-galaxy # 共享、下载roles的工具
  5. ansible-inventory    # 查看Inventory主机信息
  6. ansible-playbook    # 执行playbook
  7. ansible-pull # 仓库中拉去playbook
  8. ansible-vault # 文件加密、解密工具
  9. ansible-console # ansible 控制台

三、配置运行环境

  1.配置Ansible的环境

  运行Ansible命令时,命令将按照预先设定的顺序先后查找配置文件

  1.   I.首先Ansible 会检查环境变量是否设置ANSIBLE_CONFIG,以及检查变量指向文件的路径;
  2.   II.检查当前目录下是否包含ansible.cfg配置文件;
  3.   III.再次检查当前用户的主目录是否包含ansible.cfg配置文件;
  4.   IV.最后检查/etc/ansible 目录下是否包含ansible.cfg配置文件,一般通过软件管理包(yum/apt)安装时会自动在etc目录下生成配置文件;

注意:

  通过pip安装时候,不会生成完成的ansible.cfg配置文件,此时我们需要从github仓库中examples目录下拷贝ansible.cfg配置文件;

  2.Ansible 主要配置文件

  1. /etc/ansible/ansible.cfg #Ansible 配置文件
  2. /etc/ansible/hosts #主机清单
  3. /etc/ansible/roles/ #角色路径

四、Ansible Inventory

  实际过程中我们需要管理不同业务,不同环境中的各种服务器资源,这些服务器的信息主要存储在Inventory 组件里面,ansible.cfg中默认定义配置文件的路径/etc/ansible/hosts;

  1.定义主机和主机组

   下面我们来/etc/ansible/hosts 文件中定义主机和主机组

  1. # Ex : 定义主机
  2.  
  3. 192.168.100.10
  4.  
  5. # Ex :定义 'WebServers' 主机组
  6.  
  7. [WebServers]
  8. 10.172.139.53
  9. 10.30.49.72
  10. 10.30..[:] # 一组类似IP地址简写模式

  说明:

    方括号[]中表示的组名字,主要用于不同类别的系统进行分类,便于对同一类的服务器资源进行管理;

  2.主机和主机组变量

  1. # 定义主机变量
  2.  
  3. 10.30.49.72 ansible_port='' #定义ssh远程端口
  4.  
  5. # 定义主机组变量
  6. # 下面的变量属于整个WebServers组
  7. [WebServers:vars]
  8. ansible_ssh_pass='ansible'
  9. ansible_ssh_port=''

  3.Inventory 常用参数说明

  1. ansible_ssh_host # 连接的远程主机名.
  2.  
  3. ansible_ssh_port # SSH远程连接端口,非标准端口设置.
  4.  
  5. ansible_ssh_user # SSH远程连接用户名
  6.  
  7. ansible_ssh_pass # SSH远程连接账号对应密码 (这种方式并容易泄露密码信息,建议使用 --ask-pass或者SSH认证)
  8.  
  9. ansible_sudo_pass # sudo用户密码(这种方式并容易泄露密码信息,烈建议使用 --ask-sudo-pass)

五、编写第一个Ansible 程序

  Ansible 安装完成以后,我们基本的了解了Ansible的配置方式,下来我们编写下第一个Ansible 程序

  1. 示例1:测试WebServers 服务器组连通信
  2.   ansible WebServers -m ping -o
  3.        主机/主机组 模块
  4. 返回结果:
  5.   39.105.0.244 | SUCCESS => {"changed": false, "ping": "pong"}
  6.   47.104.149.180 | SUCCESS => {"changed": false, "ping": "pong"}
  7. 示例2WebServers /opt 目录下创建ansible.txt文件
  8.   ansible 47.104.149.180 -m file -a "owner=root group=root mode=644 path=/opt/ansible.txt state=touch" -o
  9.  
  10.        主机/主机组 模块 参数
  11.  
  12.  返回结果:
  13.  
  14.   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 安装与配置(一)的更多相关文章

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

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

  2. 15.Ansible安装与配置简单版

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

  3. 1.Ansible安装以及配置

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

  4. Ansible安装及配置

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

  5. ansible安装和配置

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

  6. ansible安装、配置ssh、hosts、测试连接

    .安装ansible 1.1.源码安装 源码安装参照 https://www.cnblogs.com/guxiong/p/7218717.html [root@kube-node3 ~]# .tar. ...

  7. Ansible安装 入门教程

    learn一门新技术咯: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置 ...

  8. Ansible安装部署及常用模块详解

    Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...

  9. Ansible安装配置Nginx

    一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...

随机推荐

  1. 信号single

    信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 Model signals pre ...

  2. python基础14_文件操作

    文件操作,通常是打开,读,写,追加等.主要涉及 编码 的问题. #!/usr/bin/env python # coding:utf-8 ## open实际上是从OS请求,得到文件句柄 f = ope ...

  3. DFS和BFS

    BFS 代码步骤: 1.写出每个点和每个点的邻接点的对应关系 2.方法参数:传一个对应关系和起始点 3.创建一个队列,然后每次都移除第一个,然后把移除的邻接点添加进去,打印取出的第一个,然后循环,一直 ...

  4. wpf 依赖属性介绍

    微软在wpf中推出le 附加属性 这个新概念 简单来说,本来自己这个类是不具备该行为,但是在特殊情况下需要用到该属性 比如在 TextBox 本来是不具备,几行几列 跨行等 行为 ,但是如果  把他放 ...

  5. django websocket

    1.dwebsocket 2.等框架都是错误的 3.  django/channels 才是正确姿势 555 4. pip install -U channels 完成后,您应该添加channels到 ...

  6. css+jquery 实现图片局部放大预览

    今天有时间开始动手,使用css+jquery实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) ...

  7. 固态硬盘Ghost安装Windows 10无法引导的问题

    机器配置如下: 电脑型号 技嘉 B360M POWER 台式电脑 操作系统 Windows 10 64位 ( DirectX 12 ) 处理器 英特尔 Core i7-8700 @ 3.20GHz 六 ...

  8. PKU《程序设计》专项课程_递归汉诺塔问题

    取自coursera.org上公开课北京大学<C程序设计进阶> 递归调用注意的点 1.关注点放在求解的目标上,递推是,目标放在开头 2.找到第N次和第(N-1)次之间的关系,通项公式 3. ...

  9. 转 Mac 下自带的中文输入法不显示汉字提示问题

    原文 https://blog.csdn.net/moxi_wang/article/details/50721326 当时聊天的时候不知道那个手指头按错了什么键 导致Mac自带的中文输入法不能提示显 ...

  10. java.lang.NoSuchMethodError: com.opensymphony.xwork2.config.ConfigurationManager.addConfigurationPro

    java.lang.NoSuchMethodError: com.opensymphony.xwork2.config.ConfigurationManager.addConfigurationPro ...