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

相关推荐

  • 22期第九周课堂作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i a=0 declare -i b=0 n=`cat /etc/passwd |cu…

    Linux干货 2016-10-17
  • Pinup alanında şahsi bahis tarzınızı necə saptamak gerçekleşir

    Pinup alanında şahsi bahis tarzınızı necə saptamak gerçekleşir Mündəricat Bölüm Açıklama Önsöz Kumar tarzının əhəmiyyəti və Pinup çevrim içi casino təcrübəsi Şans türleri və özelli…

    Linux干货 2024-11-22
  • Linux RPM 命令参数使用详解

    rpm 执行安装包: 二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由 RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。 -ivh # 安装显示安装进度–install–verbose–hash。 使用方法如下:   &n…

    2017-04-18
  • Linux中用户管理基本命令和用法

    Linux操作系统用户管理: 特点:多任务,多用户操作系统(Multi-tasks,Multi-Users) Linux中用户: 用户组成: 用户ID:每个用户都有一个唯一识别码称为用户ID。        密码:认证手段 用户分类:管理用户 管理员的用户ID为0       普通用户 U…

    Linux干货 2016-08-05
  • Linux文件属性及如何修改文件属性

    ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性   dr-xr-x—.   7       root     root       4…

    2017-04-03
  • linux中的几种压缩工具

    文件压缩 compress 不能自动补齐 .Z -d 解压缩 uncompress zcat X.Z > X -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。 -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1. -v 显示详细过程。 ———&…

    2017-08-11