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

相关推荐

  • vim简单操作

    vim第一讲 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。 h (左移) j (下行) k (上行) l (右移) 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车> 欲退出 Vim 编辑器,请输入 <ESC> :q! <回车> 放弃所有改动。 或者输入 <ESC&gt…

    Linux干货 2017-07-29
  • 你会用Python写洗脑神曲吗?

    Python实战班-学员学习成果展示 同样是周末,有些人是闲聊着度过,有些人是学习充电度过。 人与人最大的区别,是下班后的时间。看你怎么去利用。 周末时,马哥Python实战班的学员正在认真上课,他们中的不少人,月薪在10k以上,甚至月薪20k以上。 但他们没有虚度周末时光。 #最浪费时间的就是:思而不学+犹豫不决。# 马哥Python实战班二期的小伙伴们才…

    Linux干货 2016-07-05
  • 2016-10-18作业

    2016-10-17 课后作业  1. 生产环境发现一台服务器系统时间产生偏差,造成服务异常,请帮忙校正。     1)首先,查看本地硬件时间是否正确,命令如下:       hwclock       如果该时间是正确的,使用该时间来更新系统时间。命令如下: &nbs…

    Linux干货 2016-10-20
  • 1.计算机的组成原理与linux初识

    计算机的组成原理 抽象 具体 Linux初识 负责与硬件交互,并向外提供系统调用 Linux大家庭 suse系列: opensuse suse enterprise redhat系列: centos redhat Debian系列: ubuntu debian 命令总结 显示本机IP(需要root权限) [root@localhost dev]# ifcon…

    Linux干货 2017-07-02
  • 基于httpd服务实验构建网站域名DNS解析

    具体组成简图 实验前期准备 httpd的安装 后期补充 做httpd 服务器的IP 为: 172.18.148.62 安装DNS域名解析包 bind yum install bind 修改DNS 的基础配置文件 /etc/named.conf   关闭所有的虚拟机的 防火墙 iptables -F CENTOS7 的系统关闭selinux sete…

    2017-04-16
  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林   前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的…

    Linux干货 2015-03-03