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
下一篇 2018-01-14

相关推荐

  • 马哥linux运维网络班第22期-第一周博客作业

    计算机的组成及其功能 计算机由运算器,控制器,存储器,输入装置和输出装置组成 (1)运算器 对数据进行常规运算(+,-,*,/)和逻辑运算(与,或,非等)及比较位移等操作 (2)控制器 分析从存储器中读出的指令并按预先规定的步奏执行操作 (3)存储器 存储程序和数据信息并实现快速存取 (4)输入设备 把各种类型的信息转换为二进制编码输入进计算机存储起来 (5…

    Linux干货 2016-08-14
  • Storm集群安装详解

    storm有两种操作模式: 本地模式和远程模式。 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来;  远端模式:你提交的topology会在一个集群的机器上执行。 本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章…

    Linux干货 2015-04-04
  • CentOS6下的网络信息配置

    简介     我们都知道在我们互联网中,所有的通信都通过网络来完成的,有了网络当然也要有对应的地址,MAC地址是固定不变的,所以能变的只有IP的地址,那么今天来带给大家如何在CentOS6中如何配置网卡。当然一下的所有命令都是在CentOS6中进行的。 一、网卡的配置文件    1.操作网卡的命令 …

    Linux干货 2017-03-20
  • 文件查找命令之locate、find简析

    文件查找命令之locate、find简析    在工作中经常会在文件系统上查找符合条件的文件,今天学习了文件查找命令,在此简析locate和find两个文件查找工具。 一、杂项知识整理 1、find的选项-user的实质是通过UID查找,如果两个用户的UID相同,其会显示两个用户的所有符合条件的文件。 2、查找时-name "*…

    Linux干货 2016-08-15
  • 文本三剑客grep爵士与手下的血泪奋战

    文件查看命令: cat, tac,revcat [OPTION]… [FILE]…  -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b: 非空行编号 -s:压缩连续的空行成一行 文件查看 分页查看文件内容more: 分页查看文件more [OPTIONS…] FILE…-d: 显示翻页及退出提示less:一页一页…

    Linux干货 2016-08-07
  • iptables

    iptables 一、基础概念 1、防火墙概念 Firewall:隔离工具;Packets Filter Firewall;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件; 如果没有防火墙,你的本机的所有端口都会被别人访问到! 2、分类 硬件防火墙:在硬件级别实现部分功能…

    2016-10-26