ansible基础应用

Ansible基础

ansible是一款自动化运维工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

Ansible架构简介

ansible架构.PNG

ansible的核心就是ansible平台,ansible是高度模块化的, core Modules是他的核心模块,是ansible自带的模块, 能完成一些最常见的系统管理配置等相关功能的,接着 custom modules,叫做自定义模块。支持大量常见语言 做二次开发额外的模块。架构中还有一块就是plugins 模块是用来完成系统管理与配置的任务的,如果想使ansible 平台本身更强大,就需要不断加入插件。plugins中有一个 连接插件很重要,ansible基于此插件来连接控制各被管理主机。 ssh是连接插件中最核心的部分,另外也可以拓展为其他协议用于 连接插件。接着,还有一个Host Inventory模块被称为主机清单 ,用来记录被管理的主机。当要管理主机时,就使用 connection plugin去连接被管理主机,接着调用相关的模块 进行管理。而playbook模块就像是一个剧本,管理员可以事先 将要执行的操作一条一条写入剧本,当要执行时,ansible 只要读取playbook中的编排再调用相关模块控制主机即可。

Ansible特性

  • 模块化:调用特定的模块,实现相应功能。

  • agentless:部署简单,被管控端无需安装客户端。

  • no server:无服务器端,使用时直接运行命令即可。

  • yaml,not code:使用yaml语言(一种标记语言,多采用key:value的形式)定制剧本playbook。

  • 支持主从模式。

  • 基于SSH连接管理被管控端。

Ansible安装与简单应用

1.实验环境准备

此次示例采用centos7系统,在epel源中自带了ansible的相关安装文件,所以直接在控制端的主机上采用yum安装即可。示例部署非常简单,控制端IP为192.168.1.67,被控制端IP分别为.68、.69、.70。

2.简单应用

ansible通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各被管理节点。此处不再赘述。最终需要能实现主机节点间无需输入密码即可访问。

另外需要定义主机清单,如下:

    #cp /etc/ansible/hosts{,.bak}
    #vim /etc/ansible/hosts         #将原文件中的内容全部删除
    [websrvs]
    192.168.1.68
    192.168.1.69
    192.168.1.70

接着可以进行初步测试,直接运行命令测试,

标准的ansible启用命令为:
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
-m module:默认为command
查看ansible各模块的相关信息及可用参数命令为:
ansible-doc: 
 -l, --list           显示当前ansible支持的模块
  -s, --snippet         跟模块名,显示模块可用args参数。

使用ping模块进行最简单的测试,看各节点是否在线:

1.png

3.常用模块使用示例

  • commond模块:
     一般不跟参数,直接给出命令指定的命令会在所选的所有的节点上执行。命令并不是通过shell执行的,所以并不
    能使用$HOME等环境变量和一些操作符(<,>,|,&)。shell模块支持环境变量和操作符。

    2.png

  • user模块:创建用户

    3.png

  • group模块:修改组id

    4.png

  • service模块:管理远程节点的服务

    5.png

  • copy模块:将本地文件复制到远程路径下。

    6.png6.png

  • shell模块:

    像command模块那样在远程节点执行命令,但shell模块再远程节点是通过shell环境
    (/bin/bash)执行命令的,该模块也可以执行一个shell脚本,但该脚本必须在远程节点上存在。

    7.png

  • script模块:
     

    -a选项直接跟一个本地脚本的绝对路径,脚本的参数以空格隔开。该模块首先将指定的脚本传到远程节点上,然后在远程节点的shell环
    境下执行该脚本。

    8.png

原创文章,作者:Net21_charles,如若转载,请注明出处:http://www.178linux.com/37985

(1)
Net21_charlesNet21_charles
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • 软件包管理

    软件包的分类,主要有以下两大类    源码包    二进制包(rpm包,系统默认包) rpm包由Redhat公司提出,被众多linux发行版所采用。 优点:建立统一的数据库文件,详细记录软件包的安装、卸载等变化信息,能够自动的分析软件包依赖关系。 查询已安装的rpm软件信息: 格式:     rpm…

    Linux干货 2016-08-25
  • 马哥教育网络班21期第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -r /etc/skel/ /home/tuser1 # chmod -R go= /home/tuser1/ 2、编辑/etc/gr…

    Linux干货 2016-07-27
  • 排名三剑客的VIM _正确的打开姿势!

    vim程序编辑器        vi:是老式的文字处理器。     vi的使用:【vi分为3种模式一般模式、编辑模式、命令模式】         一般模式:   vi打开文件就直接进入到了一…

    Linux干货 2017-04-10
  • Linux 基础知识(六.一)

    一、模式及模式间的切换 (一)模式介绍 1、vim文本编辑器提供了三种基本模式,分别是编辑模式(命令模式)、输入模式以及末行模式(命令行模式) (二)模式间的切换 二、基础操作 (一)单文件的打开与关闭 1、单文件的打开:vim [options]… /path/to/somefile 2、单文件打开时的常用选项: (1)+#:表示当文件打开时,…

    Linux干货 2016-11-14
  • HA Cluster—Keepalived

    HA Cluster 集群类型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP 系统可用性的公式:A=MTBF/(MTBF+MTTR) 系统故障: 硬件故障:设计缺陷、wear out、自然灾害 软件故障:设计缺陷 提升系统高用性的解决方案之降低MTTR: 解决方案:冗余(redundant) acti…

    Linux干货 2017-10-30
  • awk多分隔符

    awk的-F参数可以指定新的分隔符,有些时候可能需求指定多个分隔符,比如下面的内容 [root@N1 ~]# netstat -an | grep ESTAB udp 0 0 192.168.1.120:35570 212.47.249.141:123 ESTABLISHED udp 0 0 192.168.1.120:55589 108.59.2.24:1…

    Linux干货 2017-08-09