ansible

运维自动化发展历程,ansible 命令使用

一、运维自动化发展历程以及应用场景

1. 运维自动化发展历程:本地部署(On-Premises)—>基础设施即服务(IaaS)—>平台即服务                            (PaaS)—>软件即服务(SaaS)

2. 应用场景:

(1)Dev 开发环境

使用者:程序员

功能    :程序员开发软件测试BUG的环境

管理者:程序员(做运维少参与)

(2)测试环境

使用者:qa测试工程师

功能    :测试经过Dev环境测试通过的软件的功能

管理者:运维(测试环境往往有多套,测试环境满足测试功能即可)

测试人员希望测试环境有多套,多个版本同步测试

通常测试环境有多少套和产品数量保持一样

(3)发布环境:代码发布机,或者堡垒机

使用者:运维

功能    :发布代码至生产环境

管理者:运维

发布机:往往需要有2台(主备)

(4)生产环境:

使用者:运维,少数核心开发人员

功能     :对用户提供公司产品的服务

管理者:只能是运维(生产环境服务器数量较多,需使用自动化工具)

(5)灰度环境:(生产环境的一部分)

使用者:运维

功能:在全量发布代码前将代码的功能面向少数人发布

案例:100台生产服务器,先发布其中10台,这10台服务器就是灰度服                                                                                务器

管理者:运维

二、自动化运维工具——ansible

1.运维工具:

Ansible:中小型应用环境,不需要代理

Saltstack:需要代理,执行效率更高

Puppet:功能强大,配置复杂,适合大型环境

2.Ansible的基础:

(1)是一款由Python开发的,适合中小型环境

(2)特性:

模块化:调用特定的模块,完成特定任务

有Paramiko,PyYAML,Jinja2(模块语言)三个关键模板

支持自定义模块

基于Python语言实现

部署简单,基于Python和SSH,不需要代理

安全,基于OpenSSH

支持playbook编排任务

幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况

无需要代理不依赖PKI(无需ssl)

可使用任何编程语言写模块

YAML格式,编排任务,支持丰富的数据结构

较强大的多层解决方案

(3)Ansible主要组成部分

1  ANSIBLE PLAYBOOKS:任务剧本,编排定义,Ansible任务集的配置文件,由                                                                                                  Ansible顺序依次执行,通常是JSON格式的YML文件

2   INVENTORY:  Ansible管理主机的清单/etc/ansible/hosts

3   MODULES :Ansible执行命令的功能模块,多数为内置的核心模块,也可自定                                                                            义,ansible-doc -l 可查看模块

4   PLUGINS :模块功能的补充如链接类型插件、循环插件、变量插件、过滤插件                                                                      等,该功能不常用

5  API : 供第三方程序调用的应用程序编程接口

6 ANSIBLE : 组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解                                                                     为是ansible命令工具,其为核心执行工具

7   Ansible命令执行来源:

USER,普通用户,即SYSTEM ADMINISTRATOR

CMDB (资源管理系统) API调用

PUBLIC/PRIVATE CLOUD API 调用

USER —> Ansible Playbook —> Ansible

利用ansible实现管理的方式:

Ad-Hoc 即 ansible 命令,主要用于临时命令使用场景

Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要                                                                                                           有提前的规划

8  Ansible-playbook(剧本)执行过程:

将已有编排的任务集写入Ansible-Playbook

通过ansible-playbook命令分拆任何集至逐条ansible命令,按预定规则                                                                   逐条执行

9 Ansible 主要操作对象:

HOSTS 主机

NETWORKING 网络设备

10 注意事项

执行ansible的主机一般称为主控端,中端,master或堡垒机

主控端Python版本需要2.6或以上

被控端Python版本小于2.4需要安装python-simplejson

被控端如开启SELinux需要安装libselinux-python

Windows不能做为主控端

11 安装的方式:

rpm包安装:EPEL源

yum install ansibe

yum info ansible

1

yum install ansible

2

编译安装

Git方式:

git clone git://github.com/ansible/ansible.git –recursive

cd ./ansible

source ./hacking/env-setup

pip安装:pip是安装Python包的管理器,类似yum

12 ansible的配置文件:

/etc/ansible/ansible.cfg 主配置文件,配置ansible的工作特性

3

/etc/ansible/hosts 主机清单的配置文件

ansible的主要功能在于批量主机操作,为了便捷的使用其中的部分主                                                                     机,可以在inventory file中将其分组命名;而默认的inventory file                                                                           为/etc/ansible/host

4

inventory文件遵循INI文件风格,中括号中的字符为组名。

类如:

5

/etc/ansible/roles/ 存放角色的目录

13 程序

/usr/bin/ansible 主程序,临时命令执行工具

/usr/bin/ansible-doc 查看配置文档,模块功能查看工具

/usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台

/usr/bin/ansible-playbook 定制自动化任务,编排剧本工具

/usr/bin/ansible-pull 远程执行命令的工具

/usr/bin/ansible-vault 文本加密工具

/usr/bin/ansible-console 基于Console界面与用户交互的工具

14 ansible 配置文件

ansible 配置文件在/etc/ansible/ansible.cfg中

[defaults]

#inventory                         =/etc/ansible/hosts    #主机列表配置文件

#library = /usr/share/my_modules/                  #库文件存放目录

#remote_tmp =$HOME/.amsible/tmp   #临时的py文件存放在远程主                                                                    机目录

#local_tmp    =$HOME/.ansible/tmp #本机的临时命令执行目录

#fork            =5    #默认并发数

#sudo_user   =root #默认sudo用户

#ask_sudo_pass =True #每次执行ansible命令是否询问ssh密码

15 ansible系列命令

6

16.ansible-doc:显示模块帮助

格式:ansible-doc [options] [module…]

-a           显示所有模块的文档

-l,–list 列出可用模块

-s,–snippet 显示指定模块的playbook片段

类子:

ansible-doc -l 列出所有模块

7

ansible-doc ping 查看指定的ping模块                    8

ansible-doc -s ping简单查看帮助

9

3.ansible的用法:

(1)格式:ensible <host-pattern> [-m module_name] [-a args]                                                                            (2)选项:

–version 显示版本

10

-m module 指定模块,默认的模块为command

11

-v 详细过程 -vv -vvv更详细的过程

12

–list-hosts 显示主机列表,可简写为-list

-k ,–ask-pass  提示连接密码,默认key验证

-C,–check 检查,并不执行

-u,–user=REMOTE_USER执行远程执行的用户

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91094

(0)
zss123456zss123456
上一篇 2018-01-13 08:15
下一篇 2018-01-14 11:42

相关推荐

  • Centos7 PHP-FPM源码安装

    PHP-FPM源码安装 安装必要组件 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autoconf net-snmp-devel vim wget sysstat lrzsz  man tree mysql-devel ntpdate rsync libxml2…

    系统运维 2016-09-06
  • 企业实时同步方案—-Sersync介绍

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1433109 Sersync 项目利用 Inotify 和 Rsync 技术实现对服务器数据实时同步的解决方案,其中 Inotify 用于监控 Sersync…

    Linux干货 2016-08-15
  • 程序包管理

    什么是程序包管理器?     顾名思义,就是将编译好的应用程序的各组成文件打包成一个或多个程序包文件,从而更方便地实现程序包的安装、升级、卸载还有查询等管理操作。 那么一个程序包又由哪些部分组成呢? 程序包的组成清单:   文件清单(每个程序包都单独实现):       安装或卸载时运行的脚本,有如下四类:     preinstall : 安装过程开始之前…

    Linux干货 2016-12-16
  • centos 6.5下搭建svn服务端

    1、先配置好yum源,svn的包在系统光盘里就有 2、yum install subversion #安装svn的服务端程序 3、mkdir -p /application/svndata #创建svn的数据存储目录,名字可以随便取 4、svnserve -d -r /application/svndata/ #指定svn的数据存储目录,就是刚才创建的 5、…

    Linux干货 2015-10-08
  • LVS 之 初识LVS

    LVS 之 初识LVS LVS 之 初识LVS 0x00 概述 0x01 LVS拓扑结构图: lvs集群类型中的术语 : 0x02 lvs-type lvs-nat lvs-dr lvs-tun lvs-fullnat : 0x03 调度算法(scheduler) 0x00 概述 LVS : Linux Virtual Server lvs 工作在 IOS …

    2017-05-11