参考 BLOG:

Ansible 系列模块

Ansible 部署与使用

Ansible Book

Ansible

Ansible 是一个自动化统一配置管理工具,自动化主要体现在 Ansible 集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。

Ansible 可跨平台和系统,譬如使用 Ansible 既可以同时管理 CentOS6 和 CentOS7,也可以同时管理 Linux 和 Windows 系统 。

Ansible 构成

Connection Plugins:连接插件,用于连接主机 用来连接被管理端

Core Modules:核心模块,连接主机实现操作,它依赖于具体的模块来做具体的事情

Custom Modules:自定义模块,根据自己的需求编写具体的模块

Plugins:插件,完成模块功能的补充

PlayBooks:剧本,Ansible 的配置文件,将多个任务定义在剧本中,由 Ansible 自动执行

Host Inventory:主机清单,定义 Ansible 需要操作主机的范围

HostN:受控端主机

Ansible 执行流程

①.Ansible 读取 Playbook 剧本,剧本中会记录对哪些主机执行哪些任务;

②.首先 Ansible 通过 Inventory 找到要执行的主机,然后调用具体的模块;

③.其次 Ansible 会通过连接插件连接对应的主机并推送对应的任务列表;

④.最后被管理的主机会将 Ansible 发送过来的任务解析为 本地Shell命令 执行

Ansible 任务执行模式

Ansible 系统由主控节点,对被控节点的操作方式可分为两类,即 Ad-Hoc 和 PlayBook:

①.Ad-Hoc 模式(点对点模式):使用单个模块,支持批量执行单条命令。Ad-Hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。就相当于 Bash 中的一句 shell命令。

②.Playbook 模式(剧本模式):Ansible 主要管理方式,Playbook 通过多个 Task集合 完成一类功能,如 应用服务器安装部署、数据库服务器的批量备份等等,可以把 Playbook 理解为通过组合多条 Ad-Hoc 操作的配置文件 。

Ansible Ad-Hoc

所谓Ad-Hoc,简而言之是"临时命令",英文中作为形容词有"特别的,临时"的含义,Ad-Hoc 只是官方对 Ansible 命令的一种称谓 。

从功能上讲,Ad-Hoc 是相对于 Playbook 而言的,Ansible 提供两种完成任务方式:一种是 Ad-Hoc 命令集,即命令 ansible,另一种就是 Playbook 了,即命令 ansible-playbook。前者更注重于解决一些简单的或者平时工作中临时遇到的任务,相当于 Linux 系统命令行下的 Shell命令,后者更适合与解决复杂或需固化下来的任务,相当于 Linux 系统的 Shell Scripts 。

Ansible Ad-Hoc 的使用:

# Installaiton
[root@m01 ~]# yum install -y ansible # Syntax:ansible <host-pattern> [options]
--version # Ansible 版本信息
-v # 显示详细信息
-i # 主机清单文件路径,默认是在 /etc/ansible/hosts
-m # 使用的模块名称,默认使用 command 模块
-a # 使用的模块参数,模块的具体动作
-k # 提示输入SSH密码,而不使用基于SSH的密钥认证
-C # 模拟执行测试,但不会真的执行
-T # 执行命令的超时 # Version
[root@m01 ~]# ansible --version
ansible 2.9.9
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

Ansible PlayBook

PlayBook 与 Ad-Hoc 相比,是一种完全不同的运用方式,

PlayBook 是由一个或多个 Play 组成的列表,Play 的主要功能在于将事先归并为一组的主机装扮成事先通过 Ansible 中的 Task 定义好的角色。从根本上来讲,所谓的 Task 无非是调用一个或者多个 Module 。将多个 Play 组织在一个 PlayBook 中,即可以让它们联合起来按事先编排的机制完成某一任务 。

Ansible PlayBook 采用 YAML 语法,它简单地实现了 JSON 格式的事件描述;YAML 是 "YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名 。

YAML 配置文件中的核心元素:

Hosts:执行的远程主机列表

Tasks:任务,由模板定义的操作列表

Varible:变量,内置变量或自定义变量在 playbook 中调用

Templates:模板,即使用模板语法的文件

Handlers:触发器 ,当某条件满足时,触发执行的操作,和 notity 结合使用

Roles:角色

Tags:标签,指定某条任务执行,用于选择运行 playbook 文件中的部分配置

推荐Blog:

Ansible 大全

Ansible 执行流程

Ansible

Ansible 自动化部署的更多相关文章

  1. CentOS7系统 ansible自动化部署多台服务器部署

    CentOS7系统 ansible自动化部署多台服务器部署   Ansible工作机制  从图中可以看出ansible分为以下几个部份: 1> Control Node:控制机器2> In ...

  2. Jenkins+Gitlab+Ansible自动化部署(五)

    Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...

  3. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  4. Jenkins+Gitlab+Ansible自动化部署(三)

    接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...

  5. Jenkins+Gitlab+Ansible自动化部署(一)

    首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab  ...

  6. Jenkins+Gitlab+Ansible自动化部署(四)

    接Jenkins+Gitlab+Ansible自动化部署(三)https://www.cnblogs.com/zd520pyx1314/p/10235394.html Jenkins应用 Jenkin ...

  7. Linux(四)—— 项目部署与ansible自动化部署

    目录 项目部署与ansible自动化部署 一.项目部署 二.ansible自动化部署(python自动化运维) 1.安装ansible 2.ansible例子 3.ansible自动化部署nginx ...

  8. Ansible自动化部署K8S集群

    Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企 ...

  9. Jenkins+Gitlab+Ansible自动化部署(二)

    接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...

  10. 通过ansible自动化部署zabbix应用

    zabbix在实际的应用中,可能需要监控的主机非常多,而每个主机的操作系统类型.版本也都不尽相同,在这种环境下,通过手动安装zabbix的agent端已经不现实了,此时就需要借助自动化工具完成zabb ...

随机推荐

  1. kubernets之secret资源

    一  对于一些保密度比较高的文件,k8s又是如何存储的呢? 针对那些保密度比较高的配置文件,例如证书以及一些认证配置不能直接存储在configmap中,而是需要存储在另外一种资源中,需要对存储在里面的 ...

  2. SDUST数据结构 - chap3 栈和队列

    一.判断题: 二.选择题: 三.编程题: 7-1 一元多项式求导: 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 代码: #include<bits/ ...

  3. ctfhub技能树—信息泄露—备份文件下载—.DS_Store

    打开靶机 查看页面信息 使用dirsearch进行扫描 访问该网页,下载文件 使用Linux系统打开文件 发现一个特殊文件,使用浏览器打开 拿到flag 二.使用Python-dsstore工具查看该 ...

  4. 训练分类器 - 基于 PyTorch

    训练分类器 目前为止,我们已经掌握了如何去定义神经网络.计算损失和更新网络中的权重. 关于数据 通常来讲,当你开始处理图像.文字.音频和视频数据,你可以使用 Python 的标准库加载数据进入 Num ...

  5. 2V升3.3V芯片,输出500MA,低功耗10uA解决方案

    2V的输入电压其实非常少,一般都是镍氢电池1.2V,干电池1.5V,来给玩具,MCU单片机,模块啊,等等供电.不过2V的供电电源或者设备确实是不常见的. 一般2V升3.3V,需要升压芯片PW5100即 ...

  6. uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号

    授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...

  7. Kubernetes之GlusterFS集群文件系统高可用安装,提供动态卷存储

    GlusterFS高可用安装 一. 准备工作 安装好的k8s集群,提供其中三个节点给GFS,这三个节点都至少有一个可用的裸块设备 在k8s所有节点安装所需要的组件 # ubuntu16.04 add- ...

  8. Solon rpc 1.3.1 发布,推出Cloud接口与配置规范

    Solon 是一个微型的Java RPC开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,3500多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:Rpc. ...

  9. Eslint错误提示

    "Missing semicolon." : "缺少分号.","Use the function form of \"use strict\ ...

  10. Docker是如何实现隔离的

    Docker是如何实现隔离的 2.进程的隔离 4.文件的隔离 5.资源的限制 7.与传统虚拟机技术的区别 原文地址: 微信公众号:<鲁智深菜园子>:Docker是如何实现隔离的 # 1.运 ...