• Ansible权威指南-读书笔记


    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块

  • 相关阅读:
    如何成为一个合格的数据架构师?
    证道:零售企业如何借助数据智能提升人效?| 数智加速度10课回顾
    终于,数据中台成为3000万企业的增长引擎
    凯德中国 × 阿里云 × 奇点云 | 沉淀数据资产,遇见数智未来
    追风:数据中台如何驱动全域消费者运营?| 数智加速度09课回顾
    何夕:跟上趋势,拥抱全域数据中台 | 数智加速度08课回顾
    南弈:释放数据价值的「三个关键点」 | 数智加速度07课回顾
    百然:智能算法如何落地商业化?| 数智加速度06课回顾
    星魁:管理数据资产的「五步骤」与「六要素」 | 数智加速度05课回顾
    pytest系列(四)- pytest+allure+jenkins
  • 原文地址:https://www.cnblogs.com/xuelong3/p/7797522.html
Copyright © 2020-2023  润新知