阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ansible安装配置入门基础知识

424次阅读
没有评论

共计 2702 个字符,预计需要花费 7 分钟才能阅读完成。

导读:
本博文主要总结 Ansible 一些基本概念以及简单操作,后续会更新使用 Ansible 部署项目时操作细节。

  1. Ansible 安装及配置
  2. Ansible 目录结构
  3. Ansible Task
  4. Ansible Handlers
  5. Ansible Templates
  6. Ansible Vars
  7. Ansible Meta

Ansible 安装及配置:
安装 ansible 方法多如星辰,这里不具体介绍了,如有疑问 google 之。
ansible 不存在客户端与服务器的概念,在配置上来说非常便捷。ansible 基于 ssh 工作,在这里简单介绍一下如何配置两台机器,使其相互之间可以连通。
10.166.224.32 为安装 ansible 机器,美其名曰控制节点
10.166.224.22 屈尊于客户机,用于测试
ansible 我的理解是控制节点 ssh 到其他客户机上输入我们输给它的命令。
因此,我们需要将控制节点的 /root/.ssh/id_rsa.pub 加入到客户机的 /root/.ssh/authorized_keys 中。

做完上一步,我们来测试一下。
首先,我们在 /etc/ansible/ 目录下创建一个 hosts 文件,用于管理客户节点网络信息,英文名叫 inventory。
Ansible 安装配置入门基础知识
【localhost】可以叫做一个 section,用于定义一个主机列表的名字。
接下来,我们 ping 一下 myclient
敲入:ansible myclient -m ping 得到如下结果
Ansible 安装配置入门基础知识


Ansible 目录结构:
Ansible 目录结构比较自由随意,在这里给出一个推荐的目录结构。
Ansible 安装配置入门基础知识
* – inventory 为了存放 hosts,hosts 就是主机列表,支持通配 *
* – roles 的概念比较关键,就是为了解耦,重复利用我们定义的 yml*
* – hello 目录是一个 role,代表一类主机对象 *
* – hello.yml 可以理解为 hello role 的入口 *
* – handlers 触发器,用于保证在任务中最多只执行一次 *
* – meta 用于定义依赖关系 *
* – tasks 用于定义任务 *
* – templates 用于定义 Jinja2 模板文件 *
* – vars 用于定义变量,可以在其他文件中 include 使用 *


Ansible Task:

task 即任务,是一个一个指令序列。我们通过定义一个 task 流,称为 playbook。然后丢给 hosts 中某个主机列表去执行。
task 书写遵从 yaml 规范。
Ansible 安装配置入门基础知识
图中功能是:
使用 shell 模块,发送一个 echo 到远程主机。ansible 提供很多模块供我们使用。
每一个 tasks 必须有一个名字,我们可以在这里定义一个 task 流,即一串 task,然后远程主机会按照顺序去执行。下面贴出一个安装 nova 的 task 作为示例:
Ansible 安装配置入门基础知识

每一个 task 都有很多项如 register,until 等等。关于这一点,我在写本文时,还不能全部搞清楚。但是想到自动化部署,我们应该能猜测到一些字段的意思,以及 ansible 应该有一些什么字段方便我们使用。本文最后会附一个官方手册,再使用过程中,我们可以随时查阅满足我们的使用。


Ansible Handlers:

我们在配置一些服务时,往往需要重启服务。我们可以把配置项拆成很多个 task,比如配置数据库,配置 rabbitMQ 等等。这样做的好处是,可能我们配置其他服务时也可以调用 rabbitMQ 这个配置 yml 文件。但是我们又不愿意,写一个配置,就重启一次服务,最理想的情况就是,所有配置写完之后,重启一次。
Handlers 就是为了满足这种需求而存在,其本身和 task 没有任何区别。它的特性是,无论你调用多少次,它最多只执行一次,而且是在最后。

Ansible 安装配置入门基础知识


Ansible Templates:

Templates 用来存放 Jinja2 文件。模板是用来设计一个框架式的配置文件,然后把 Anisble 需要的值插入到合适的位置。

Jinja2 可以作为 filter:
例如:
shell: cat /test.txt
register: result
1. 我们可以根据 result 的值执行相应的步骤,这里用到 when

-debug: msg=”successful”
when: result | successful

-debug: msg=”failed”
when: result | failed

2. 我们可以强制赋予未定义变量值
{{undefined_var | default(1)}} #初始值为 1

3. 数组操作
{{list | min}} 取数组中最小值

还有很多操作,不意义列举了,在项目实际过程中,根据需要 google 是很方便的。在这里我们只要知道 Jinja2 可以做很多事情就好。


Ansible Vars:
关于变量,首先我们想到的是,我们可以定义变量,然后在多个文档中使用,这是基本需求。
其次,我们希望,我们可以调用远程主机上的变量。
最好,我们还可以定义一个变量,让它能记录远程主机执行 playbook 后返回的信息,方便作为后续 playbook 的执行路径选择。

变量命名规则:常规命名方式,a_b,ab 都行
register : 用来保存执行 task 返回值
例如:
我们执行一个
shell: cat /test.txt
register: test_result
远程目录下的 test.txt 文件内容就被读取到本地 test_result 变量里面

使用 Ansible 高效交付 Docker 容器  http://www.linuxidc.com/Linux/2015-10/124233.htm

使用 Ansible 批量管理远程服务器  http://www.linuxidc.com/Linux/2015-05/118080.htm

Ansible 安装配置与简单使用  http://www.linuxidc.com/Linux/2015-07/120399.htm

在 CentOS 7 中安装并使用自动化工具 Ansible  http://www.linuxidc.com/Linux/2015-10/123801.htm

Ansible 和 Docker 的作用和用法  http://www.linuxidc.com/Linux/2014-11/109783.htm

Ansible 批量搭建 LAMP 环境 http://www.linuxidc.com/Linux/2014-10/108264.htm

Ansible:一个配置管理和 IT 自动化工具  http://www.linuxidc.com/Linux/2014-11/109365.htm

Ansible 的详细介绍:请点这里
Ansible 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134170.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2702字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7815559
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...