Ansible自动化工具之--部署篇

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

如何安装Ansible

环境介绍

官网安装Ansible的几种方式参考一下,接下来给大家的介绍的是通过pip的方式安装ansible的2.3.2版本.
本次使用的是Centos6.7版本操作系统,所以在安装ansible之前需要把默认的python2.6.6版本升级至python2.7.5版本

Python升级

安装python2.7.5版本
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel gcc-c++
tar xf Python-2.7.5.tar.gz
编译与安装Python
cd Python-2.7.5
./configure –prefix=/usr/local
make && make install
make clean
make distclean
将系统python命令指向Python 2.7
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
将yum需要执行的python指定为2.6.6
vi /usr/bin/yum
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
pip安装Ansible

更换镜像源:OPSX源站

根据系统版本选择合适的源:{centos,epel,pip}

下载get-pip.py文件: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

安装pip: python get-pip.py

安装ansible:
创建pip软连接: ln -s /usr/local/bin/pip /usr/bin/pip
制定版本安装ansible: pip install ansible==2.3.2.0

查看ansible版本: ansible --version

Ansible基本配置
ansible是轻量级的自动化批量管理工具,无需客户端安装agent就可以操作远程主机,下面介绍两种hosts配置方式,在介绍之前pip安装的ansible是没有配置文件的,需要手动创建配置文件目录。
创建ansible目录,默认是在/etc/目录下
  mkdir /etc/ansible
创建配置文件
  touch /etc/ansible/ansible.conf
基本配置信息:
  [defaults]
  inventory = /etc/ansible/hosts
  forks = 5
  log_path=/var/log/ansible.log
  host_key_checking = False
  [accelerate]
  accelerate_port = 5099
  accelerate_timeout = 30
  accelerate_connect_timeout = 5.0
基础配置,根据需求自行添加配置文件
Ansible运行前的最后一次配置hosts

hosts配置参数

ansible_ssh_host   #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名
ansible_ssh_pass #ssh连接时的密码
ansible_sudo_pass #使用sudo连接用户时的密码
ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径 ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项
ansible_shell_type #目标系统的shell的类型,默认sh
ansible_connection #SSH 连接的类型: local , ssh , paramiko,在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh (支持的前提)
ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl 的路径
ansible_*_interpreter #其他解释器路径,用法和ansible_python_interpreter类似,这里"*"可以是ruby或才perl等其他语言

hosts配置文件可用两种方式配置:

  1、ssh

  2、密钥

本次介绍使用ssh的方式配置hosts文件来控制主机

vim /etc/ansible/hosts

[web-202]

10.244.78.202 ansible_ssh_user=root ansible_ssh_pass=qwe`123

[web-204]

10.244.78.204 ansible_ssh_user=root ansible_ssh_pass=qwe`123

[web-206]

10.244.78.206 ansible_ssh_user=root ansible_ssh_pass=qwe`123

[webserver:children]

web-202

web-204

web-206

自动化运维Ansible安装篇的更多相关文章

  1. 自动化运维-ansible入门篇

    1.ansible配置 什么是Ansible IT自动化工具 依赖于现有的操作系统凭证来访问控制远程机器 简单易用.安全可靠 Ansible可以完成哪些任务 配置系统 开发软件 编排高级的IT任务 A ...

  2. 自动化运维 Ansible

    自动化运维 Ansible 特性 (1).no agents:不需要在被管控主机上安装任何客户端: (2).no server:无服务器端,使用时直接运行命令即可: (3).modules in an ...

  3. python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  4. CentOSLinux系统中Ansible自动化运维的安装以及利用Ansible部署JDK和Hadoop

    Ansible 安装和配置 Ansible 说明 Ansible 官网:https://www.ansible.com/ Ansible 官网 Github:https://github.com/an ...

  5. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  6. 服务器/网络/虚拟化/云平台自动化运维-ansible

    ansible与netconf的对比 首先明确一个概念,netconf是协议,ansible是python编写的工具 netconf 使用YANG建模,XML进行数据填充,使用netconf协议进行传 ...

  7. 自动化运维—Ansible(上)

    一:为什么选择Ansible 相对于puppet和saltstack,ansible无需客户端,更轻量级 ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展 更强的远程命令 ...

  8. 自动化运维--ansible(1)

    前戏 ansible 批量在远程主机上执行命令 openpyxl 操作excel表格 puppet ansible slatstack ansible epel源 第一步: 下载epel源 wget ...

  9. Ansible自动化运维工具安装与使用实例

    1.准备两台服务器,要确定网络是通的.服务器当然越多越好啦....Ansible的简介和好处我就不多说了,自己看百科去(*╹▽╹*) IP:192.168.139.100 IP:192.168.139 ...

随机推荐

  1. 四、PyQt5布局管理(绝对&相对、水平、垂直、格栅、表单)

    目录 一.绝对布局 二.盒布局 三.格栅布局 四.格栅布局跨行跨列显示 布局管理即设置窗体上各个控件的位置,对于新手来说,这是学习的难点. 布局管理根据绝对坐标是否变动分为绝对布局和相对布局两大类.采 ...

  2. Linux无法正常连接服务器,无法连接上 127.0.0.1:8989 (127.0.0.1)。 - connect (111: 拒绝连接)

    最近修改了下电脑的hosts文件,电脑就突然不能连接下载更新的服务器了,但是浏览器还能正常上网,这让我很是难受啊!!! 错误现象如下: 错误:1 http://archive.ubuntukylin. ...

  3. 关于python,完善我计算机知识的一步。

    因为身为理科男,所以特别喜欢涉及其他领域的知识.而对我来说,计算机是很有诱惑力的--尤其是程序语言设计,懂得一门“外语”是多么的重要.大一时候接触过包括有计算机的基本知识,c语言,这个新的学期也开始接 ...

  4. [C#.net]SQL参数传入空值报错解决方案

    C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value. 注意:SQL参数是不能接受C#的null值的,传入null就会报错. SqlComman ...

  5. Maven学习 八 采用Maven搭建SSM环境

    第一步:创建一个Maven项目 项目的打包方式选择,war 第二步:在webapp下面创建java web项目的目录结构,并配置web.xml文件 <?xml version="1.0 ...

  6. squid故障汇总

    1.COSS will not function without large file support (off_t is 4 bytes long. Please reconsider recomp ...

  7. php final

    final:如果父类中的方法被声明为final,则子类无法覆盖该方法.如果一个类被声明为final,则不能被继承. 方法示例: <?phpclass BaseClass {   public f ...

  8. python提示AttributeError: 'NoneType' object has no attribute 'append'【转发】

    在写python脚本时遇到AttributeError: 'NoneType' object has no attribute 'append' a=[] b=[1,2,3,4] a = a.appe ...

  9. git遇到的问题-- Another git process seems to be running in this repository

    执行git add .时,报错 fatal: Unable to create '/Users/lily/ForWork/forReBaomai/bm-fe/.git/index.lock': Fil ...

  10. rest_framework登录组件,权限组件

    昨日回顾: -HyperlinkedIdentityField(用来生成url),传三个参数 -实例化序列化类的时候,BookSerializer(ret, many=True, context={' ...