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干货 2016-12-29
  • N22-第一周作业

    1、描述计算机的组成及功能      计算机系统由硬件系统和软件系统组成。硬件系统(Hardware system)是计算机完成计算工作  的物质基础。软件系统(Software system):是在计算机硬件设备上运行的各种程序,是介于用户  和硬件系统之间的界面。1.1 计算机的硬件系…

    Linux干货 2016-08-22
  • 8-2 作业

    8-2作业     1.在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 2.创建组sales,gid 3000,passwd:centos,sales admins:user2。…

    Linux干货 2016-08-05
  • CentOS7.2编译安装httpd

    环境:CentOS7.2 软件包:httpd-2.2.29.tar.bz2 1、解压缩httpd-2.2.29.tar.bz2 2、进入解压过的文件夹,查看用法(INSTALL、)后然后./configure –help查看参数后执行需要的参数操作,     通过选项传递参数,指定启用特性,安装路径的等,…

    Linux干货 2016-08-24
  • 常用磁盘阵列说明

    一.什么是磁盘阵列     磁盘阵列英文全名为RedundantArrays of Inexpensive Disks(RAID),即容错廉价磁盘阵列。     RAID可以将一些容量较小的磁盘通技术手段组成一个容量较大的磁盘设备,而且不只是容量上的提升,RAID还可以提供数据保…

    Linux干货 2015-04-02
  • 毕业即高薪只是别人家的好事吗?

    1 毕业即高薪?运气?梦想?还是嘘头?  同学们,你还在担心毕业后不好找工作吗,毕业即高薪只是别人家的好事吗?马哥linux又一名在校生学员毕业即20w+高薪名企,你还在等什么呢? 真的只是梦想么?还是只存在于别人家的公司? 越来越多的在校大学生凭着强烈的上进心踊跃的加入了马哥linux的学习阵营,这名研究生同学在研究生毕业的同时也从马哥linux…

    2015-09-06