2 Ansible基础元素介绍

2.1 ansible 目录结构介绍

2.2 ansible 配置文件解析

配置文件解析顺序:当前命令执行目录-->用户家目录下的.ansible.cfg-->/etc/ansible.cfg

2.3 ansible 命令用法详解

2.4 ansible系列命令用法详解

  • ansible
  • ansible-galaxy
    • ansile-galaxy的功能可以裂解为Github或Pip的功能,通过该命令,可以根据下载量和关注量查找和安装优秀的roles
  • ansible-doc
  • ansible-pull
  • ansible-playbook
  • ansible-vault
  • ansible-console

2.5 ansible Inventory配置详解

2.5.1 定义主机和组

2.5.2 定义主机变量

2.5.3 定义组变量

2.5.4 定义组嵌套及组变量

2.5.5 多重变量定义

2.5.6 其他Inventory参数列表

3 ansible Ad-Hoc命令集

3.1 ad-hoc试用场景

3.2 ad-hoc命令集介绍

3.2.1 ad-hoc命令集用法简介

3.2.2 通过ad-hoc查看系统设置

3.2.3 通过ad-hoc研究ansible并发特性

3.2.4 通过ad-hoc研究ansible模块使用

3.3 ad-hoc组管理和特定主机变更

3.3.1 ad-hoc组定义

3.3.2 ad-hoc配置管理:配置Proxy与web servers实践

3.3.3 ad-hoc配置后端:配置NOSQL与DataBase实践

3.3.4 ad-hoc特定主机变更

3.4 ad-hoc用户管理

3.4.1 window用户管理

3.4.2 linux用户管理

3.4.3 应用层用户管理

4 playbook快速入门

4.1 playbook语法简介

4.1.1 多行缩进

4.1.2 单行缩进

4.2 playbook案例分析

4.3 playbook与shell脚本差异对比

4.4 ansible-playbook实战小技巧

4.4.1 限定执行范围

4.4.2 用户与权限设置

4.4.3 ansible-playbook:其他选项技巧

5 ansible playbook扩展

5.1 Handlers

5.2 环境变量

5.3 变量

5.3.1 playbook变量

5.3.2 在Inventory文件中定义变量

5.3.3 注册变量

5.3.4 试用高阶变量

5.3.5 主机变量与组变量

5.3.6 Facts(收集系统信息)

5.3.6.1 facts信息

playbook文件中如果定义了gather_facts: no

运行该脚本时,就不会在执行的远程主机上收集系统性信息

---
- hosts: node
gather_facts: no

5.3.6.1 本地fact变量

[root@server ~]# ansible node -m setup -a "filter=ansible_local"
172.17.0.32 | SUCCESS => {
"ansible_facts": {},
"changed": false
}
172.17.0.31 | SUCCESS => {
"ansible_facts": {
"ansible_local": {
"setting": {
"user": {
"admin": "jane,jou",
"normal": "zhansgan"
}
}
}
},
"changed": false
}
172.17.0.33 | SUCCESS => {
"ansible_facts": {},
"changed": false
}
[root@server ~]# ansible 172.17.0.31 -m command -a "cat /etc/ansible/facts.d/setting.fact"
172.17.0.31 | SUCCESS | rc=0 >>
[user]
admin=jane,jou
normal=zhansgan

5.3.7 ansible加密模块Vault

一些常用的选项

  • edit
  • rekey:重新修改已被加密文件密码
  • create: 创建一个新的文件,并直接对其进行加密
  • view:查看经过加密的文件
  • decrypt: 解密文件
ansible-vault encrypt sample.yml
ansible-playbook test.yml --vault-password-file /PATH/TO/PASSWD.txt

注意 :python的cryptography模块会加速vault的速度

5.3.8 变量优先级(由高到低)

  1. 在命令刚中定义的变量(即使用-e定义的变量)
  2. 在Inventory中定义的连接变量(例如:ansible_ssh_user)
  3. 大多数的其他变量(命令行转换,play中的变量,included变量,role中的变量等)
  4. 在Inventory定义的其他变量
  5. 由系统通过gather_facts方法发现的变量
  6. role默认变量,这是一个默认值,很容易丧失优先权

5.4 if/then/when---流程控制

5.4.1 Jinja2正则表达,python内置函数和逻辑判断

可以借助python的一些内置方法,大大增强了ansible的功能

5.4.1.1 jinja2数据类型

  • 字符串型 string
  • 整数型 45
  • 浮点数型 42.33
  • 列表 [1,2,3]
  • 元组 (1,2,3)
  • 字典 {key:value}
  • 布尔型 truefalse

5.4.1.2 jinja2支持的数据运算

  • 基本数据运算 加减乘除,比较运算==,!=,>=
  • 逻辑运算 and,or,not
  • defined,undefined,equalto,even,iterable

5.4.2 变量注册器register

注册变量的四种类型

  • changed 任务是否对远程主机造成的变更
  • delta 任务运行所用的时间
  • stdout 正常的输出时间
  • stderr 错误信息

使用的方式

- shell: my_command_here
register: my_command_result

调用结果的方式:my_command_result.stdout

5.4.3 when条件判断

5.4.4 changed_when,failed_when条件判断

5.4.5 ignore_errors条件判断

5.5 任务键流程控制

5.5.1 任务委托

---
- hosts: node
gather_facts: no
tasks:
- name: "install git"
delegate_to: 172.17.0.3
yum: name=git state=present
#表示在指定的主机上运行该任务

5.5.2 任务暂停

5.6 交互式提示

---
- hosts: node
vars_prompt:
- name: share_user
prompt: "what is your network username"
- name: share_pass
prompt: "what is your network password"
private: yes
default: admin
confirm: yes

5.7 Tags标签

5.8 Block块

Ansible权威指南-读书笔记的更多相关文章

  1. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  2. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  3. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  4. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

  5. 经典的性能优化最佳实践 web性能权威指南 读书笔记

    web性能权威指南 page 203 经典的性能优化最佳实践 无论什么网络,也不管所用网络协议是什么版本,所有应用都应该致力于消除或减 少不必要的网络延迟,将需要传输的数据压缩至最少.这两条标准是经典 ...

  6. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  7. 《Ansible权威指南》笔记(2)——Inventory配置

    四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...

  8. 《Ansible权威指南》笔记(4)——Playbook

    七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...

  9. Hadoop权威指南读书笔记

    本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系 ...

随机推荐

  1. Nginx部署前后端分离服务

    飘过... 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件.使用 Ngi ...

  2. legend图例

    import matplotlib.pyplot as plt import numpy as np x=np.linspace(-3,3,50) y1=x*2+1 y2=x**2 plt.plot( ...

  3. linux公社大量免费的在线android资料

    2011年linux数据库的android在线分享 linux公社:开源公社             本文撰写:杨凯专属频道 下载如需密码,详见博客案例:点击我去查看密码 2011年9月12日 21: ...

  4. docker mysql5.7.16 中文乱码

    有部分同学会遇到,在centos上Docker-MySQL没乱码,但是在fedora系统上的docker-mysql会有乱码问题,这兴许是docker-mysql的问题,这里的bug我们不去追究,这里 ...

  5. Allenmind's Blog

    听说,Sass和Compass更配哟.来看看Compass的基本用法! 目录 Compass和Sass 安装Compass 项目初始化 编译 Compass的模块 Compass的Helper函数 一 ...

  6. 有关PHP的可变函数

    事情的起因是这样子的,最近看到一道题,问的是 <?php $_POST['a']($_POST['b']);?> 这句代码有什么问题,答案很明显因为PHP的可变函数这个特性,导致了任意代码 ...

  7. 【i3】manjaro配置

    介绍 这是一期关于manjaro的安装到开发环境配置i3wm的教程.我即将在manjaro_gnome里面演示 主要的软件或者工具 i3wm tmux nvim polybar compton ran ...

  8. LeetCode---二叉树3-总结例题

    二叉树-总结例题 1-从中序与后序遍历序列构造二叉树 给定二叉树的后序遍历和二叉树的中序遍历 想法: 先根据后序遍历的最后一个元素构造根节点 寻找根节点在中序遍历中的位置 递归构建根节点的左右子树 / ...

  9. 《数字信号处理》课程实验2 – FIR数字滤波器设计

    一.FIR数字滤波器设计原理  本实验采用窗函数法设计FIR数字低通滤波器.我们希望设计的滤波器系统函数如下: \(H_{d}\left( e^{jw} \right) = \left\{ \begi ...

  10. 微信小程序开发,如何优雅地兼容

    小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容. 关于单个 API 如何兼容,微信官方提供了兼容文档,因此我们这里不再赘述.下面主要讨论在整个项目如 ...