Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
  • Jenkins

    • Jenkins 学习笔记
      • 1 Jenkins 简介

        • 1.1 DevOps、CI、CD都是什么鬼?
          • 1.2 Jenkins简介
          • 2 安装 Jenkins

            • 2.1 yum 安装 jenkins
              • 2.2 war 包安装 jenkins
                • 2.3 使用 ansible 安装 jenkins
                  • 2.4 使用docker安装jenkins
                  • 3 使用 Jenkins

                    • 3.1 Jenkins用户权限管理
                      • 3.2 访问 API
                      • 4 流水线核心语法

                        • 4.1 开始编写Jenkinsfile
                          • 4.2 Jenkins流水线语法
                            • 4.3 Groovy 简明教程
                              • 4.4 Jenkins共享库应用
                                • 4.5 共享库之钉钉消息推送
                                  • 4.6 流水线开发工具
                                    • 4.7 pipeline 生产配置实例
                                      • 4.8 在 VS Code 中校验 Jenkinsfile
                                      • 5 流水线集成篇

                                        • 5.1 构建发布工具集成
                                          • 5.2 用户认证系统集成
                                          • 6 管理 jenkins

                                            • 6.1 Jenkins 关闭和重启的实现方式
                                            • 7 日常维护

                                              • 7.1 Jenkins Job迁移
                                              • 8 Jenkins 常见问题
                                              • Ansible

                                                • Ansible 学习笔记
                                                  • 1 初识Ansible
                                                    • 2 Ansible Inventory配置详解
                                                      • 3 Ansible Ad-hoc命令集

                                                        • 3.1 Ansible Ad-hoc 常用命令集
                                                          • 3.2 Ansible lineinfile模块详解
                                                          • 4 Ansible Playbook

                                                            • 4.1 Playbook的结构及handler用法
                                                              • 4.2 Playbook循环语句
                                                                • 4.3 Playbook条件语句
                                                                  • 4.4 Playbook高级用法
                                                                    • 4.5 Playbook之tags
                                                                      • 4.6 巧用Roles
                                                                        • 4.7 Jinja2 模板
                                                                          • 4.8 yaml语法
                                                                          • 5 Ansible变量

                                                                            • 5.1 自定义变量
                                                                              • 5.2 Fact变量
                                                                                • 1 fact简介
                                                                                  • 2 自定义fact(Local Facts)
                                                                                    • 2.1 手动设置fact
                                                                                      • 2.2 使用set_fact模块定义新的变量
                                                                                      • 3 手动采集fact
                                                                                        • 4 启用fact缓存
                                                                                          • 4.1 Json文件fact缓存后端
                                                                                            • 4.2 Redis fact缓存后端
                                                                                              • 4.3 Memcached fact缓存后端
                                                                                              • 5 关闭fact
                                                                                                • 6 委托Facts
                                                                                                • 5.3 魔法变量
                                                                                                  • 5.4 使用lookup生成变量
                                                                                                    • 5.5 使用vault配置加密
                                                                                                    • 6 Ansible使用优化
                                                                                                      • 7 常见问题
                                                                                                        • 8 综合项目

                                                                                                          • 使用 ansible 快速安装 k8s 机器

                                                                                                        5.2 Fact变量

                                                                                                        author iconClaycalendar icon2020年3月20日category icon
                                                                                                        • 自动化工具
                                                                                                        tag icon
                                                                                                        • Ansible
                                                                                                        timer icon大约 14 分钟

                                                                                                        此页内容
                                                                                                        • 1 fact简介
                                                                                                        • 2 自定义fact(Local Facts)
                                                                                                          • 2.1 手动设置fact
                                                                                                          • 2.2 使用set_fact模块定义新的变量
                                                                                                        • 3 手动采集fact
                                                                                                        • 4 启用fact缓存
                                                                                                          • 4.1 Json文件fact缓存后端
                                                                                                          • 4.2 Redis fact缓存后端
                                                                                                          • 4.3 Memcached fact缓存后端
                                                                                                        • 5 关闭fact
                                                                                                        • 6 委托Facts

                                                                                                        # 5.2 Fact变量

                                                                                                        # 1 fact简介

                                                                                                        为了让Ansible更了解目标节点,可以让它去收集目标节点的信息,比如获取对方的主机名、系统版本、IP地址或其它网卡信息、分区挂载信息等等。在Ansible中,收集到的这些节点信息称为Facts。

                                                                                                        有了这些信息,用户可以更好的控制管理节点,比如当IP地址为xxx时就怎样怎样,当系统是CentOS 6时怎样怎样,是CentOS 7时怎样怎样,等等。

                                                                                                        有这些信息当然好,但是收集这些信息是有代价的,而且代价很大:因为要收集的信息量很大,所以收集的过程非常慢。所以,如果在playbook中用不上这些信息时,应当禁用收集行为,这也是一个非常有效的效率优化手段。

                                                                                                        ansible两个模块叫setup、gather_facts,用于获取远程主机的相关信息,并可以将这些信息作为变量在playbook里进行调用。而setup模块获取这些信息的方法就是依赖于fact。

                                                                                                        $ ansible localhost -m setup
                                                                                                        $ ansible localhost -m gather_facts
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        简单说明一下setup模块和gather_facts模块的区别。setup模块是早就存在的模块,而gather_facts模块是Ansible 2.8才提供的,它是一个二次封装的模块,内部很可能就是调用setup模块,但为何还要提供gather_facts模块呢?也许原因就在于gather_facts模块相比setup模块多的一个功能:并行收集多个节点的信息,而且在探测到要收集多个节点信息时会自动并行。

                                                                                                        既然setup和gather_facts是模块,那么它们也可以在playbook中当作任务来执行。但是playbook专门为此提供了一个play级别的指令:gather_facts。

                                                                                                        # ansible test -m setup
                                                                                                        10.1.61.187 | SUCCESS => {
                                                                                                            "ansible_facts": {
                                                                                                                "ansible_all_ipv4_addresses": [
                                                                                                                    "10.1.61.187"
                                                                                                                ],
                                                                                                                "ansible_all_ipv6_addresses": [
                                                                                                                    "fe80::f816:3eff:fe4f:6611"
                                                                                                                ],
                                                                                                                "ansible_apparmor": {
                                                                                                                    "status": "disabled"
                                                                                                                },
                                                                                                                "ansible_architecture": "x86_64",
                                                                                                                "ansible_bios_date": "04/01/2014",
                                                                                                                "ansible_bios_version": "Ubuntu-1.8.2-1ubuntu1~cloud0",
                                                                                                                
                                                                                                                ...output omitted...
                                                                                                        }
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11
                                                                                                        12
                                                                                                        13
                                                                                                        14
                                                                                                        15
                                                                                                        16
                                                                                                        17
                                                                                                        18

                                                                                                        setup获取的这些信息,都是可用于该主机的变量。

                                                                                                        # 2 自定义fact(Local Facts)

                                                                                                        # 2.1 手动设置fact

                                                                                                        ansible除了能获取到预定义的fact的内容,还支持手动为某个主机定制fact。称之为本地fact。本地fact默认存放于被控端的/etc/ansible/facts.d目录下,如果文件为ini格式或者json格式,ansible会自动识别。以这种形式加载的fact是key为ansible_local的特殊变量。

                                                                                                        下面是一个简单的示例,在ansibler主控端定义一个ini格式的custom.fact文件内容如下:

                                                                                                        [general]
                                                                                                        package = httpd
                                                                                                        service = httpd
                                                                                                        state = started
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4

                                                                                                        然后我们编写一个playbook文件名为setup_facts.yml内容如下:

                                                                                                        ---
                                                                                                        - name: Install remote facts
                                                                                                          hosts: test
                                                                                                          vars: 
                                                                                                            remote_dir: /etc/ansible/facts.d
                                                                                                            facts_file: custom.fact
                                                                                                          tasks:
                                                                                                            - name: Create the remote directory
                                                                                                              file:
                                                                                                                state: directory
                                                                                                                recurse: yes
                                                                                                                path: "{{ remote_dir }}"
                                                                                                            - name: Install the new facts
                                                                                                              copy:
                                                                                                                src: "{{ facts_file }}"
                                                                                                                dest: "{{ remote_dir }}"
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11
                                                                                                        12
                                                                                                        13
                                                                                                        14
                                                                                                        15
                                                                                                        16

                                                                                                        执行该playbook,完成facts的推送:

                                                                                                        ansible-playbook setup_facts.yml
                                                                                                        
                                                                                                        1

                                                                                                        此时,我们可以在被控端看到新的facts已经生成:

                                                                                                        # ansible test -m setup        
                                                                                                        10.1.61.187 | SUCCESS => {
                                                                                                            "ansible_facts": {
                                                                                                            
                                                                                                                ...output omitted...
                                                                                                                
                                                                                                                "ansible_local": {
                                                                                                                    "custom": {
                                                                                                                        "general": {
                                                                                                                            "package": "httpd",
                                                                                                                            "service": "httpd",
                                                                                                                            "state": "started"
                                                                                                                        }
                                                                                                                    }
                                                                                                                },
                                                                                                        
                                                                                                                ...output omitted...
                                                                                                          
                                                                                                        }
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11
                                                                                                        12
                                                                                                        13
                                                                                                        14
                                                                                                        15
                                                                                                        16
                                                                                                        17
                                                                                                        18
                                                                                                        19

                                                                                                        我们可以写一个简单的playbook来使用这些facts:

                                                                                                        - name: Install Apache and starts the service
                                                                                                          hosts: test
                                                                                                          tasks:
                                                                                                            - name: Install the required package
                                                                                                              yum: 
                                                                                                                name: "{{ ansible_facts.ansible_local.custom.general.package }}"
                                                                                                                state: latest
                                                                                                            - name: Start the service
                                                                                                              service: 
                                                                                                                name: "{{ ansible_facts.ansible_local.custom.general.service }}"
                                                                                                                state: "{{ ansible_facts.ansible_local.custom.general.state }}"
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11

                                                                                                        # 2.2 使用set_fact模块定义新的变量

                                                                                                        set_fact模块可以自定义facts,这些自定义的facts可以通过template或者变量的方式在playbook中使用。如果你想要获取一个进程使用的内存的百分比,则必须通过set_fact来进行计算之后得出其值,并将其值在playbook中引用。

                                                                                                        下面是一个set_fact模块的应用示例:

                                                                                                        - name: set_fact example
                                                                                                          hosts: test
                                                                                                          tasks:
                                                                                                            - name: Calculate InnoDB buffer pool size
                                                                                                              set_fact: innodb_buffer_pool_size_mb="{{ ansible_memtotal_mb / 2 |int }}"
                                                                                                              
                                                                                                            - debug: var=innodb_buffer_pool_size_mb
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7

                                                                                                        执行playbook如下:

                                                                                                        # ansible-playbook set_fact_ex.yaml 
                                                                                                        
                                                                                                        PLAY [set_fact example] *****************************************************************************************************************************************************
                                                                                                        
                                                                                                        TASK [Gathering Facts] ******************************************************************************************************************************************************
                                                                                                        ok: [10.1.61.187]
                                                                                                        
                                                                                                        TASK [Calculate InnoDB buffer pool size] ************************************************************************************************************************************
                                                                                                        ok: [10.1.61.187]
                                                                                                        
                                                                                                        TASK [debug] ****************************************************************************************************************************************************************
                                                                                                        ok: [10.1.61.187] => {
                                                                                                            "innodb_buffer_pool_size_mb": "3911.0"
                                                                                                        }
                                                                                                        
                                                                                                        PLAY RECAP ******************************************************************************************************************************************************************
                                                                                                        10.1.61.187                : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11
                                                                                                        12
                                                                                                        13
                                                                                                        14
                                                                                                        15
                                                                                                        16
                                                                                                        17

                                                                                                        这种设置方式只在当前playbook当中有效

                                                                                                        # 3 手动采集fact

                                                                                                        收集到目标节点信息之后,各信息都保存在一个名为ansible_facts的变量中,所以可以直接debug去查看这个变量里保存了什么东西,也即收集了目标节点的哪些信息。

                                                                                                        - name: info in ansible_facts
                                                                                                          debug:
                                                                                                            var: ansible_facts
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3

                                                                                                        此外也可以直接使用下面的方式来查看Facts中收集了哪些信息:

                                                                                                        $ ansible localhost -m 'setup'
                                                                                                        
                                                                                                        1

                                                                                                        下面是收集到的部分Facts信息:

                                                                                                        localhost | SUCCESS => {
                                                                                                            "ansible_facts": {
                                                                                                                "ansible_all_ipv4_addresses": [
                                                                                                                    "192.168.135.234"
                                                                                                                ],
                                                                                                                "ansible_all_ipv6_addresses": [
                                                                                                                    "fe80::c38:ea5:1598:8169"
                                                                                                                ],
                                                                                                                "ansible_apparmor": {
                                                                                                                    "status": "disabled"
                                                                                                                },
                                                                                                                "ansible_architecture": "x86_64",
                                                                                                                "ansible_bios_date": "04/01/2014",
                                                                                                                "ansible_bios_version": "1.11.0-2.el7",
                                                                                                                "ansible_cmdline": {
                                                                                                                    "BOOT_IMAGE": "/vmlinuz-3.10.0-957.el7.x86_64",
                                                                                                                    "biosdevname": "0",
                                                                                                                    "crashkernel": "auto",
                                                                                                                    "net.ifnames": "0",
                                                                                                                    "quiet": true,
                                                                                                                    "rhgb": true,
                                                                                                                    "ro": true,
                                                                                                                    "root": "UUID=120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                },
                                                                                                                "ansible_date_time": {
                                                                                                                    "date": "2021-03-16",
                                                                                                                    "day": "16",
                                                                                                                    "epoch": "1615886206",
                                                                                                                    "hour": "17",
                                                                                                                    "iso8601": "2021-03-16T09:16:46Z",
                                                                                                                    "iso8601_basic": "20210316T171646952201",
                                                                                                                    "iso8601_basic_short": "20210316T171646",
                                                                                                                    "iso8601_micro": "2021-03-16T09:16:46.952201Z",
                                                                                                                    "minute": "16",
                                                                                                                    "month": "03",
                                                                                                                    "second": "46",
                                                                                                                    "time": "17:16:46",
                                                                                                                    "tz": "CST",
                                                                                                                    "tz_offset": "+0800",
                                                                                                                    "weekday": "Tuesday",
                                                                                                                    "weekday_number": "2",
                                                                                                                    "weeknumber": "11",
                                                                                                                    "year": "2021"
                                                                                                                },
                                                                                                                "ansible_default_ipv4": {
                                                                                                                    "address": "192.168.135.234",
                                                                                                                    "alias": "eth0",
                                                                                                                    "broadcast": "192.168.135.255",
                                                                                                                    "gateway": "192.168.135.254",
                                                                                                                    "interface": "eth0",
                                                                                                                    "macaddress": "fa:16:3e:7e:9b:47",
                                                                                                                    "mtu": 1500,
                                                                                                                    "netmask": "255.255.255.0",
                                                                                                                    "network": "192.168.135.0",
                                                                                                                    "type": "ether"
                                                                                                                },
                                                                                                                "ansible_default_ipv6": {},
                                                                                                                "ansible_device_links": {
                                                                                                                    "ids": {
                                                                                                                        "sr0": [
                                                                                                                            "ata-QEMU_DVD-ROM_QM00002"
                                                                                                                        ],
                                                                                                                        "sr1": [
                                                                                                                            "ata-QEMU_DVD-ROM_QM00004"
                                                                                                                        ],
                                                                                                                        "vda": [
                                                                                                                            "virtio-c1672133-7ae6-4318-8"
                                                                                                                        ],
                                                                                                                        "vda1": [
                                                                                                                            "virtio-c1672133-7ae6-4318-8-part1"
                                                                                                                        ],
                                                                                                                        "vda2": [
                                                                                                                            "virtio-c1672133-7ae6-4318-8-part2"
                                                                                                                        ]
                                                                                                                    },
                                                                                                                    "labels": {
                                                                                                                        "sr1": [
                                                                                                                            "config-2"
                                                                                                                        ]
                                                                                                                    },
                                                                                                                    "masters": {},
                                                                                                                    "uuids": {
                                                                                                                        "sr1": [
                                                                                                                            "2021-03-08-14-55-38-00"
                                                                                                                        ],
                                                                                                                        "vda1": [
                                                                                                                            "fef1f8c8-02fb-440c-b8aa-8fec6bfb4a88"
                                                                                                                        ],
                                                                                                                        "vda2": [
                                                                                                                            "120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                        ]
                                                                                                                    }
                                                                                                                },
                                                                                                                "ansible_devices": {
                                                                                                                    "sr0": {
                                                                                                                        "holders": [],
                                                                                                                        "host": "",
                                                                                                                        "links": {
                                                                                                                            "ids": [
                                                                                                                                "ata-QEMU_DVD-ROM_QM00002"
                                                                                                                            ],
                                                                                                                            "labels": [],
                                                                                                                            "masters": [],
                                                                                                                            "uuids": []
                                                                                                                        },
                                                                                                                        "model": "QEMU DVD-ROM",
                                                                                                                        "partitions": {},
                                                                                                                        "removable": "1",
                                                                                                                        "rotational": "1",
                                                                                                                        "sas_address": null,
                                                                                                                        "sas_device_handle": null,
                                                                                                                        "scheduler_mode": "deadline",
                                                                                                                        "sectors": "2097151",
                                                                                                                        "sectorsize": "512",
                                                                                                                        "size": "1024.00 MB",
                                                                                                                        "support_discard": "0",
                                                                                                                        "vendor": "QEMU",
                                                                                                                        "virtual": 1
                                                                                                                    },
                                                                                                                    "sr1": {
                                                                                                                        "holders": [],
                                                                                                                        "host": "",
                                                                                                                        "links": {
                                                                                                                            "ids": [
                                                                                                                                "ata-QEMU_DVD-ROM_QM00004"
                                                                                                                            ],
                                                                                                                            "labels": [
                                                                                                                                "config-2"
                                                                                                                            ],
                                                                                                                            "masters": [],
                                                                                                                            "uuids": [
                                                                                                                                "2021-03-08-14-55-38-00"
                                                                                                                            ]
                                                                                                                        },
                                                                                                                        "model": "QEMU DVD-ROM",
                                                                                                                        "partitions": {},
                                                                                                                        "removable": "1",
                                                                                                                        "rotational": "1",
                                                                                                                        "sas_address": null,
                                                                                                                        "sas_device_handle": null,
                                                                                                                        "scheduler_mode": "deadline",
                                                                                                                        "sectors": "964",
                                                                                                                        "sectorsize": "2048",
                                                                                                                        "size": "482.00 KB",
                                                                                                                        "support_discard": "0",
                                                                                                                        "vendor": "QEMU",
                                                                                                                        "virtual": 1
                                                                                                                    },
                                                                                                                    "vda": {
                                                                                                                        "holders": [],
                                                                                                                        "host": "",
                                                                                                                        "links": {
                                                                                                                            "ids": [
                                                                                                                                "virtio-c1672133-7ae6-4318-8"
                                                                                                                            ],
                                                                                                                            "labels": [],
                                                                                                                            "masters": [],
                                                                                                                            "uuids": []
                                                                                                                        },
                                                                                                                        "model": null,
                                                                                                                        "partitions": {
                                                                                                                            "vda1": {
                                                                                                                                "holders": [],
                                                                                                                                "links": {
                                                                                                                                    "ids": [
                                                                                                                                        "virtio-c1672133-7ae6-4318-8-part1"
                                                                                                                                    ],
                                                                                                                                    "labels": [],
                                                                                                                                    "masters": [],
                                                                                                                                    "uuids": [
                                                                                                                                        "fef1f8c8-02fb-440c-b8aa-8fec6bfb4a88"
                                                                                                                                    ]
                                                                                                                                },
                                                                                                                                "sectors": "1024000",
                                                                                                                                "sectorsize": 512,
                                                                                                                                "size": "500.00 MB",
                                                                                                                                "start": "2048",
                                                                                                                                "uuid": "fef1f8c8-02fb-440c-b8aa-8fec6bfb4a88"
                                                                                                                            },
                                                                                                                            "vda2": {
                                                                                                                                "holders": [],
                                                                                                                                "links": {
                                                                                                                                    "ids": [
                                                                                                                                        "virtio-c1672133-7ae6-4318-8-part2"
                                                                                                                                    ],
                                                                                                                                    "labels": [],
                                                                                                                                    "masters": [],
                                                                                                                                    "uuids": [
                                                                                                                                        "120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                                    ]
                                                                                                                                },
                                                                                                                                "sectors": "208689152",
                                                                                                                                "sectorsize": 512,
                                                                                                                                "size": "99.51 GB",
                                                                                                                                "start": "1026048",
                                                                                                                                "uuid": "120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "removable": "0",
                                                                                                                        "rotational": "1",
                                                                                                                        "sas_address": null,
                                                                                                                        "sas_device_handle": null,
                                                                                                                        "scheduler_mode": "mq-deadline",
                                                                                                                        "sectors": "209715200",
                                                                                                                        "sectorsize": "512",
                                                                                                                        "size": "100.00 GB",
                                                                                                                        "support_discard": "0",
                                                                                                                        "vendor": "0x1af4",
                                                                                                                        "virtual": 1
                                                                                                                    }
                                                                                                                },
                                                                                                                "ansible_distribution": "CentOS",
                                                                                                                "ansible_distribution_file_parsed": true,
                                                                                                                "ansible_distribution_file_path": "/etc/redhat-release",
                                                                                                                "ansible_distribution_file_variety": "RedHat",
                                                                                                                "ansible_distribution_major_version": "7",
                                                                                                                "ansible_distribution_release": "Core",
                                                                                                                "ansible_distribution_version": "7.6",
                                                                                                                "ansible_dns": {
                                                                                                                    "nameservers": [
                                                                                                                        "202.96.209.5",
                                                                                                                        "114.114.114.114"
                                                                                                                    ],
                                                                                                                    "search": [
                                                                                                                        "openstacklocal"
                                                                                                                    ]
                                                                                                                },
                                                                                                                "ansible_domain": "",
                                                                                                                "ansible_effective_group_id": 0,
                                                                                                                "ansible_effective_user_id": 0,
                                                                                                                "ansible_env": {
                                                                                                                    "CLASSPATH": ".::/opt/jdk1.8.0_144/lib:/opt/jdk1.8.0_144/jre/lib",
                                                                                                                    "HISTCONTROL": "ignoredups",
                                                                                                                    "HISTSIZE": "1000",
                                                                                                                    "HOME": "/root",
                                                                                                                    "HOSTNAME": "host-192-168-135-234",
                                                                                                                    "JAVA_HOME": "/opt/jdk1.8.0_144",
                                                                                                                    "JRE_HOME": "/opt/jdk1.8.0_144/jre",
                                                                                                                    "LANG": "en_US.UTF-8",
                                                                                                                    "LESSOPEN": "||/usr/bin/lesspipe.sh %s",
                                                                                                                    "LOGNAME": "root",
                                                                                                                    "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:",
                                                                                                                    "MAIL": "/var/spool/mail/root",
                                                                                                                    "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_144/bin:/opt/jdk1.8.0_144/jre/bin:/root/bin",
                                                                                                                    "PWD": "/etc/ansible/playbooks",
                                                                                                                    "SHELL": "/bin/bash",
                                                                                                                    "SHLVL": "3",
                                                                                                                    "SSH_CLIENT": "192.168.135.72 6220 22",
                                                                                                                    "SSH_CONNECTION": "192.168.135.72 6220 192.168.135.234 22",
                                                                                                                    "SSH_TTY": "/dev/pts/0",
                                                                                                                    "TERM": "xterm",
                                                                                                                    "USER": "root",
                                                                                                                    "XDG_RUNTIME_DIR": "/run/user/0",
                                                                                                                    "XDG_SESSION_ID": "5879",
                                                                                                                    "_": "/usr/bin/python3"
                                                                                                                },
                                                                                                                "ansible_eth0": {
                                                                                                                    "active": true,
                                                                                                                    "device": "eth0",
                                                                                                                    "features": {
                                                                                                                        "busy_poll": "off [fixed]",
                                                                                                                        "fcoe_mtu": "off [fixed]",
                                                                                                                        "generic_receive_offload": "on",
                                                                                                                        "generic_segmentation_offload": "on",
                                                                                                                        "highdma": "on [fixed]",
                                                                                                                        "hw_tc_offload": "off [fixed]",
                                                                                                                        "l2_fwd_offload": "off [fixed]",
                                                                                                                        "large_receive_offload": "off [fixed]",
                                                                                                                        "loopback": "off [fixed]",
                                                                                                                        "netns_local": "off [fixed]",
                                                                                                                        "ntuple_filters": "off [fixed]",
                                                                                                                        "receive_hashing": "off [fixed]",
                                                                                                                        "rx_all": "off [fixed]",
                                                                                                                        "rx_checksumming": "on [fixed]",
                                                                                                                        "rx_fcs": "off [fixed]",
                                                                                                                        "rx_gro_hw": "off [fixed]",
                                                                                                                        "rx_udp_tunnel_port_offload": "off [fixed]",
                                                                                                                        "rx_vlan_filter": "on [fixed]",
                                                                                                                        "rx_vlan_offload": "off [fixed]",
                                                                                                                        "rx_vlan_stag_filter": "off [fixed]",
                                                                                                                        "rx_vlan_stag_hw_parse": "off [fixed]",
                                                                                                                        "scatter_gather": "on",
                                                                                                                        "tcp_segmentation_offload": "on",
                                                                                                                        "tx_checksum_fcoe_crc": "off [fixed]",
                                                                                                                        "tx_checksum_ip_generic": "on",
                                                                                                                        "tx_checksum_ipv4": "off [fixed]",
                                                                                                                        "tx_checksum_ipv6": "off [fixed]",
                                                                                                                        "tx_checksum_sctp": "off [fixed]",
                                                                                                                        "tx_checksumming": "on",
                                                                                                                        "tx_fcoe_segmentation": "off [fixed]",
                                                                                                                        "tx_gre_csum_segmentation": "off [fixed]",
                                                                                                                        "tx_gre_segmentation": "off [fixed]",
                                                                                                                        "tx_gso_partial": "off [fixed]",
                                                                                                                        "tx_gso_robust": "off [fixed]",
                                                                                                                        "tx_ipip_segmentation": "off [fixed]",
                                                                                                                        "tx_lockless": "off [fixed]",
                                                                                                                        "tx_nocache_copy": "off",
                                                                                                                        "tx_scatter_gather": "on",
                                                                                                                        "tx_scatter_gather_fraglist": "off [fixed]",
                                                                                                                        "tx_sctp_segmentation": "off [fixed]",
                                                                                                                        "tx_sit_segmentation": "off [fixed]",
                                                                                                                        "tx_tcp6_segmentation": "on",
                                                                                                                        "tx_tcp_ecn_segmentation": "on",
                                                                                                                        "tx_tcp_mangleid_segmentation": "off",
                                                                                                                        "tx_tcp_segmentation": "on",
                                                                                                                        "tx_udp_tnl_csum_segmentation": "off [fixed]",
                                                                                                                        "tx_udp_tnl_segmentation": "off [fixed]",
                                                                                                                        "tx_vlan_offload": "off [fixed]",
                                                                                                                        "tx_vlan_stag_hw_insert": "off [fixed]",
                                                                                                                        "udp_fragmentation_offload": "on",
                                                                                                                        "vlan_challenged": "off [fixed]"
                                                                                                                    },
                                                                                                                    "hw_timestamp_filters": [],
                                                                                                                    "ipv4": {
                                                                                                                        "address": "192.168.135.234",
                                                                                                                        "broadcast": "192.168.135.255",
                                                                                                                        "netmask": "255.255.255.0",
                                                                                                                        "network": "192.168.135.0"
                                                                                                                    },
                                                                                                                    "ipv6": [
                                                                                                                        {
                                                                                                                            "address": "fe80::c38:ea5:1598:8169",
                                                                                                                            "prefix": "64",
                                                                                                                            "scope": "link"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "macaddress": "fa:16:3e:7e:9b:47",
                                                                                                                    "module": "virtio_net",
                                                                                                                    "mtu": 1500,
                                                                                                                    "pciid": "virtio0",
                                                                                                                    "promisc": false,
                                                                                                                    "timestamping": [
                                                                                                                        "rx_software",
                                                                                                                        "software"
                                                                                                                    ],
                                                                                                                    "type": "ether"
                                                                                                                },
                                                                                                                "ansible_fibre_channel_wwn": [],
                                                                                                                "ansible_fips": false,
                                                                                                                "ansible_form_factor": "Other",
                                                                                                                "ansible_fqdn": "host-192-168-135-234",
                                                                                                                "ansible_hostname": "host-192-168-135-234",
                                                                                                                "ansible_hostnqn": "",
                                                                                                                "ansible_interfaces": [
                                                                                                                    "lo",
                                                                                                                    "eth0"
                                                                                                                ],
                                                                                                                "ansible_is_chroot": false,
                                                                                                                "ansible_iscsi_iqn": "",
                                                                                                                "ansible_kernel": "3.10.0-957.el7.x86_64",
                                                                                                                "ansible_kernel_version": "#1 SMP Thu Nov 8 23:39:32 UTC 2018",
                                                                                                                "ansible_lo": {
                                                                                                                    "active": true,
                                                                                                                    "device": "lo",
                                                                                                                    "features": {
                                                                                                                        "busy_poll": "off [fixed]",
                                                                                                                        "fcoe_mtu": "off [fixed]",
                                                                                                                        "generic_receive_offload": "on",
                                                                                                                        "generic_segmentation_offload": "on",
                                                                                                                        "highdma": "on [fixed]",
                                                                                                                        "hw_tc_offload": "off [fixed]",
                                                                                                                        "l2_fwd_offload": "off [fixed]",
                                                                                                                        "large_receive_offload": "off [fixed]",
                                                                                                                        "loopback": "on [fixed]",
                                                                                                                        "netns_local": "on [fixed]",
                                                                                                                        "ntuple_filters": "off [fixed]",
                                                                                                                        "receive_hashing": "off [fixed]",
                                                                                                                        "rx_all": "off [fixed]",
                                                                                                                        "rx_checksumming": "on [fixed]",
                                                                                                                        "rx_fcs": "off [fixed]",
                                                                                                                        "rx_gro_hw": "off [fixed]",
                                                                                                                        "rx_udp_tunnel_port_offload": "off [fixed]",
                                                                                                                        "rx_vlan_filter": "off [fixed]",
                                                                                                                        "rx_vlan_offload": "off [fixed]",
                                                                                                                        "rx_vlan_stag_filter": "off [fixed]",
                                                                                                                        "rx_vlan_stag_hw_parse": "off [fixed]",
                                                                                                                        "scatter_gather": "on",
                                                                                                                        "tcp_segmentation_offload": "on",
                                                                                                                        "tx_checksum_fcoe_crc": "off [fixed]",
                                                                                                                        "tx_checksum_ip_generic": "on [fixed]",
                                                                                                                        "tx_checksum_ipv4": "off [fixed]",
                                                                                                                        "tx_checksum_ipv6": "off [fixed]",
                                                                                                                        "tx_checksum_sctp": "on [fixed]",
                                                                                                                        "tx_checksumming": "on",
                                                                                                                        "tx_fcoe_segmentation": "off [fixed]",
                                                                                                                        "tx_gre_csum_segmentation": "off [fixed]",
                                                                                                                        "tx_gre_segmentation": "off [fixed]",
                                                                                                                        "tx_gso_partial": "off [fixed]",
                                                                                                                        "tx_gso_robust": "off [fixed]",
                                                                                                                        "tx_ipip_segmentation": "off [fixed]",
                                                                                                                        "tx_lockless": "on [fixed]",
                                                                                                                        "tx_nocache_copy": "off [fixed]",
                                                                                                                        "tx_scatter_gather": "on [fixed]",
                                                                                                                        "tx_scatter_gather_fraglist": "on [fixed]",
                                                                                                                        "tx_sctp_segmentation": "on",
                                                                                                                        "tx_sit_segmentation": "off [fixed]",
                                                                                                                        "tx_tcp6_segmentation": "on",
                                                                                                                        "tx_tcp_ecn_segmentation": "on",
                                                                                                                        "tx_tcp_mangleid_segmentation": "on",
                                                                                                                        "tx_tcp_segmentation": "on",
                                                                                                                        "tx_udp_tnl_csum_segmentation": "off [fixed]",
                                                                                                                        "tx_udp_tnl_segmentation": "off [fixed]",
                                                                                                                        "tx_vlan_offload": "off [fixed]",
                                                                                                                        "tx_vlan_stag_hw_insert": "off [fixed]",
                                                                                                                        "udp_fragmentation_offload": "on",
                                                                                                                        "vlan_challenged": "on [fixed]"
                                                                                                                    },
                                                                                                                    "hw_timestamp_filters": [],
                                                                                                                    "ipv4": {
                                                                                                                        "address": "127.0.0.1",
                                                                                                                        "broadcast": "",
                                                                                                                        "netmask": "255.0.0.0",
                                                                                                                        "network": "127.0.0.0"
                                                                                                                    },
                                                                                                                    "ipv6": [
                                                                                                                        {
                                                                                                                            "address": "::1",
                                                                                                                            "prefix": "128",
                                                                                                                            "scope": "host"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "mtu": 65536,
                                                                                                                    "promisc": false,
                                                                                                                    "timestamping": [
                                                                                                                        "rx_software",
                                                                                                                        "software"
                                                                                                                    ],
                                                                                                                    "type": "loopback"
                                                                                                                },
                                                                                                                "ansible_local": {},
                                                                                                                "ansible_lsb": {},
                                                                                                                "ansible_machine": "x86_64",
                                                                                                                "ansible_machine_id": "5da37d186bbc4fab946458f383820cc2",
                                                                                                                "ansible_memfree_mb": 5793,
                                                                                                                "ansible_memory_mb": {
                                                                                                                    "nocache": {
                                                                                                                        "free": 6652,
                                                                                                                        "used": 1150
                                                                                                                    },
                                                                                                                    "real": {
                                                                                                                        "free": 5793,
                                                                                                                        "total": 7802,
                                                                                                                        "used": 2009
                                                                                                                    },
                                                                                                                    "swap": {
                                                                                                                        "cached": 0,
                                                                                                                        "free": 0,
                                                                                                                        "total": 0,
                                                                                                                        "used": 0
                                                                                                                    }
                                                                                                                },
                                                                                                                "ansible_memtotal_mb": 7802,
                                                                                                                "ansible_mounts": [
                                                                                                                    {
                                                                                                                        "block_available": 25154087,
                                                                                                                        "block_size": 4096,
                                                                                                                        "block_total": 26073407,
                                                                                                                        "block_used": 919320,
                                                                                                                        "device": "/dev/vda2",
                                                                                                                        "fstype": "xfs",
                                                                                                                        "inode_available": 52034972,
                                                                                                                        "inode_total": 52172288,
                                                                                                                        "inode_used": 137316,
                                                                                                                        "mount": "/",
                                                                                                                        "options": "rw,relatime,attr2,inode64,noquota",
                                                                                                                        "size_available": 103031140352,
                                                                                                                        "size_total": 106796675072,
                                                                                                                        "uuid": "120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "block_available": 93950,
                                                                                                                        "block_size": 4096,
                                                                                                                        "block_total": 127145,
                                                                                                                        "block_used": 33195,
                                                                                                                        "device": "/dev/vda1",
                                                                                                                        "fstype": "xfs",
                                                                                                                        "inode_available": 255673,
                                                                                                                        "inode_total": 256000,
                                                                                                                        "inode_used": 327,
                                                                                                                        "mount": "/boot",
                                                                                                                        "options": "rw,relatime,attr2,inode64,noquota",
                                                                                                                        "size_available": 384819200,
                                                                                                                        "size_total": 520785920,
                                                                                                                        "uuid": "fef1f8c8-02fb-440c-b8aa-8fec6bfb4a88"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "ansible_nodename": "host-192-168-135-234",
                                                                                                                "ansible_os_family": "RedHat",
                                                                                                                "ansible_pkg_mgr": "yum",
                                                                                                                "ansible_proc_cmdline": {
                                                                                                                    "BOOT_IMAGE": "/vmlinuz-3.10.0-957.el7.x86_64",
                                                                                                                    "biosdevname": [
                                                                                                                        "0",
                                                                                                                        "0",
                                                                                                                        "0"
                                                                                                                    ],
                                                                                                                    "crashkernel": "auto",
                                                                                                                    "net.ifnames": [
                                                                                                                        "0",
                                                                                                                        "0",
                                                                                                                        "0"
                                                                                                                    ],
                                                                                                                    "quiet": true,
                                                                                                                    "rhgb": true,
                                                                                                                    "ro": true,
                                                                                                                    "root": "UUID=120cca73-ddab-4aac-b751-7421263b55ad"
                                                                                                                },
                                                                                                                "ansible_processor": [
                                                                                                                    "0",
                                                                                                                    "GenuineIntel",
                                                                                                                    "QEMU Virtual CPU version (cpu64-rhel6)",
                                                                                                                    "1",
                                                                                                                    "GenuineIntel",
                                                                                                                    "QEMU Virtual CPU version (cpu64-rhel6)",
                                                                                                                    "2",
                                                                                                                    "GenuineIntel",
                                                                                                                    "QEMU Virtual CPU version (cpu64-rhel6)",
                                                                                                                    "3",
                                                                                                                    "GenuineIntel",
                                                                                                                    "QEMU Virtual CPU version (cpu64-rhel6)"
                                                                                                                ],
                                                                                                                "ansible_processor_cores": 1,
                                                                                                                "ansible_processor_count": 4,
                                                                                                                "ansible_processor_threads_per_core": 1,
                                                                                                                "ansible_processor_vcpus": 4,
                                                                                                                "ansible_product_name": "ArStack",
                                                                                                                "ansible_product_serial": "ed734a0c-5e92-45e4-8491-1f2882a28b98",
                                                                                                                "ansible_product_uuid": "E9D04AFD-381C-4EF2-8523-A5F2177334A9",
                                                                                                                "ansible_product_version": "2020.5.15-1.el7.centos",
                                                                                                                "ansible_python": {
                                                                                                                    "executable": "/usr/bin/python3",
                                                                                                                    "has_sslcontext": true,
                                                                                                                    "type": "cpython",
                                                                                                                    "version": {
                                                                                                                        "major": 3,
                                                                                                                        "micro": 8,
                                                                                                                        "minor": 6,
                                                                                                                        "releaselevel": "final",
                                                                                                                        "serial": 0
                                                                                                                    },
                                                                                                                    "version_info": [
                                                                                                                        3,
                                                                                                                        6,
                                                                                                                        8,
                                                                                                                        "final",
                                                                                                                        0
                                                                                                                    ]
                                                                                                                },
                                                                                                                "ansible_python_version": "3.6.8",
                                                                                                                "ansible_real_group_id": 0,
                                                                                                                "ansible_real_user_id": 0,
                                                                                                                "ansible_selinux": {
                                                                                                                    "status": "Missing selinux Python library"
                                                                                                                },
                                                                                                                "ansible_selinux_python_present": false,
                                                                                                                "ansible_service_mgr": "systemd",
                                                                                                                "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNxkCyohIHmaY5FLaLU4NRenQ6QE9qcjzbs87lvJhhH7TpWKHw3/NOVLks1amivsFJ1CQsgzk+XkU/YLfDFGNRo=",
                                                                                                                "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAILGRRrB9EPLkKsnOkyTzCpIyfWuIPEh7Qy9l2H0O+k4U",
                                                                                                                "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDXqv9l/aw5jmEeKMRIVCUSUCpAPSUYyiVzfe7MNGDJ/Wd/ZHBMScAKgPq31z5OXJBpzDzIULZ5Di3WwmIdRHU6f4+PQ7E2LHQN4SDQvk7Flz7ivUv/aGtwUft929llVyT7/jrVFzWeR3ABtc6Roux2UMwWZANDwGWLkv+R6qluFNZ4yGTmYr7i/WTa0IXqI0AgZbAjGcSxqwGpgC7+NW8UVn975sz2pBRgCz9PG0mTWLKjcpESPpeypX0D0liq3rkwCjmU3OutwrTOYX1Di5n9miufUvZeSauWfska++t8xSYcOvbkzWidCOWOYtmx6VqrbKSSQiEDAbWJipIGcX+T",
                                                                                                                "ansible_swapfree_mb": 0,
                                                                                                                "ansible_swaptotal_mb": 0,
                                                                                                                "ansible_system": "Linux",
                                                                                                                "ansible_system_capabilities": [
                                                                                                                    "cap_chown",
                                                                                                                    "cap_dac_override",
                                                                                                                    "cap_dac_read_search",
                                                                                                                    "cap_fowner",
                                                                                                                    "cap_fsetid",
                                                                                                                    "cap_kill",
                                                                                                                    "cap_setgid",
                                                                                                                    "cap_setuid",
                                                                                                                    "cap_setpcap",
                                                                                                                    "cap_linux_immutable",
                                                                                                                    "cap_net_bind_service",
                                                                                                                    "cap_net_broadcast",
                                                                                                                    "cap_net_admin",
                                                                                                                    "cap_net_raw",
                                                                                                                    "cap_ipc_lock",
                                                                                                                    "cap_ipc_owner",
                                                                                                                    "cap_sys_module",
                                                                                                                    "cap_sys_rawio",
                                                                                                                    "cap_sys_chroot",
                                                                                                                    "cap_sys_ptrace",
                                                                                                                    "cap_sys_pacct",
                                                                                                                    "cap_sys_admin",
                                                                                                                    "cap_sys_boot",
                                                                                                                    "cap_sys_nice",
                                                                                                                    "cap_sys_resource",
                                                                                                                    "cap_sys_time",
                                                                                                                    "cap_sys_tty_config",
                                                                                                                    "cap_mknod",
                                                                                                                    "cap_lease",
                                                                                                                    "cap_audit_write",
                                                                                                                    "cap_audit_control",
                                                                                                                    "cap_setfcap",
                                                                                                                    "cap_mac_override",
                                                                                                                    "cap_mac_admin",
                                                                                                                    "cap_syslog",
                                                                                                                    "35",
                                                                                                                    "36+ep"
                                                                                                                ],
                                                                                                                "ansible_system_capabilities_enforced": "True",
                                                                                                                "ansible_system_vendor": "Huayun",
                                                                                                                "ansible_uptime_seconds": 571792,
                                                                                                                "ansible_user_dir": "/root",
                                                                                                                "ansible_user_gecos": "root",
                                                                                                                "ansible_user_gid": 0,
                                                                                                                "ansible_user_id": "root",
                                                                                                                "ansible_user_shell": "/bin/bash",
                                                                                                                "ansible_user_uid": 0,
                                                                                                                "ansible_userspace_architecture": "x86_64",
                                                                                                                "ansible_userspace_bits": "64",
                                                                                                                "ansible_virtualization_role": "guest",
                                                                                                                "ansible_virtualization_type": "kvm",
                                                                                                                "gather_subset": [
                                                                                                                    "all"
                                                                                                                ],
                                                                                                                "module_setup": true
                                                                                                            },
                                                                                                            "changed": false
                                                                                                        }
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9
                                                                                                        10
                                                                                                        11
                                                                                                        12
                                                                                                        13
                                                                                                        14
                                                                                                        15
                                                                                                        16
                                                                                                        17
                                                                                                        18
                                                                                                        19
                                                                                                        20
                                                                                                        21
                                                                                                        22
                                                                                                        23
                                                                                                        24
                                                                                                        25
                                                                                                        26
                                                                                                        27
                                                                                                        28
                                                                                                        29
                                                                                                        30
                                                                                                        31
                                                                                                        32
                                                                                                        33
                                                                                                        34
                                                                                                        35
                                                                                                        36
                                                                                                        37
                                                                                                        38
                                                                                                        39
                                                                                                        40
                                                                                                        41
                                                                                                        42
                                                                                                        43
                                                                                                        44
                                                                                                        45
                                                                                                        46
                                                                                                        47
                                                                                                        48
                                                                                                        49
                                                                                                        50
                                                                                                        51
                                                                                                        52
                                                                                                        53
                                                                                                        54
                                                                                                        55
                                                                                                        56
                                                                                                        57
                                                                                                        58
                                                                                                        59
                                                                                                        60
                                                                                                        61
                                                                                                        62
                                                                                                        63
                                                                                                        64
                                                                                                        65
                                                                                                        66
                                                                                                        67
                                                                                                        68
                                                                                                        69
                                                                                                        70
                                                                                                        71
                                                                                                        72
                                                                                                        73
                                                                                                        74
                                                                                                        75
                                                                                                        76
                                                                                                        77
                                                                                                        78
                                                                                                        79
                                                                                                        80
                                                                                                        81
                                                                                                        82
                                                                                                        83
                                                                                                        84
                                                                                                        85
                                                                                                        86
                                                                                                        87
                                                                                                        88
                                                                                                        89
                                                                                                        90
                                                                                                        91
                                                                                                        92
                                                                                                        93
                                                                                                        94
                                                                                                        95
                                                                                                        96
                                                                                                        97
                                                                                                        98
                                                                                                        99
                                                                                                        100
                                                                                                        101
                                                                                                        102
                                                                                                        103
                                                                                                        104
                                                                                                        105
                                                                                                        106
                                                                                                        107
                                                                                                        108
                                                                                                        109
                                                                                                        110
                                                                                                        111
                                                                                                        112
                                                                                                        113
                                                                                                        114
                                                                                                        115
                                                                                                        116
                                                                                                        117
                                                                                                        118
                                                                                                        119
                                                                                                        120
                                                                                                        121
                                                                                                        122
                                                                                                        123
                                                                                                        124
                                                                                                        125
                                                                                                        126
                                                                                                        127
                                                                                                        128
                                                                                                        129
                                                                                                        130
                                                                                                        131
                                                                                                        132
                                                                                                        133
                                                                                                        134
                                                                                                        135
                                                                                                        136
                                                                                                        137
                                                                                                        138
                                                                                                        139
                                                                                                        140
                                                                                                        141
                                                                                                        142
                                                                                                        143
                                                                                                        144
                                                                                                        145
                                                                                                        146
                                                                                                        147
                                                                                                        148
                                                                                                        149
                                                                                                        150
                                                                                                        151
                                                                                                        152
                                                                                                        153
                                                                                                        154
                                                                                                        155
                                                                                                        156
                                                                                                        157
                                                                                                        158
                                                                                                        159
                                                                                                        160
                                                                                                        161
                                                                                                        162
                                                                                                        163
                                                                                                        164
                                                                                                        165
                                                                                                        166
                                                                                                        167
                                                                                                        168
                                                                                                        169
                                                                                                        170
                                                                                                        171
                                                                                                        172
                                                                                                        173
                                                                                                        174
                                                                                                        175
                                                                                                        176
                                                                                                        177
                                                                                                        178
                                                                                                        179
                                                                                                        180
                                                                                                        181
                                                                                                        182
                                                                                                        183
                                                                                                        184
                                                                                                        185
                                                                                                        186
                                                                                                        187
                                                                                                        188
                                                                                                        189
                                                                                                        190
                                                                                                        191
                                                                                                        192
                                                                                                        193
                                                                                                        194
                                                                                                        195
                                                                                                        196
                                                                                                        197
                                                                                                        198
                                                                                                        199
                                                                                                        200
                                                                                                        201
                                                                                                        202
                                                                                                        203
                                                                                                        204
                                                                                                        205
                                                                                                        206
                                                                                                        207
                                                                                                        208
                                                                                                        209
                                                                                                        210
                                                                                                        211
                                                                                                        212
                                                                                                        213
                                                                                                        214
                                                                                                        215
                                                                                                        216
                                                                                                        217
                                                                                                        218
                                                                                                        219
                                                                                                        220
                                                                                                        221
                                                                                                        222
                                                                                                        223
                                                                                                        224
                                                                                                        225
                                                                                                        226
                                                                                                        227
                                                                                                        228
                                                                                                        229
                                                                                                        230
                                                                                                        231
                                                                                                        232
                                                                                                        233
                                                                                                        234
                                                                                                        235
                                                                                                        236
                                                                                                        237
                                                                                                        238
                                                                                                        239
                                                                                                        240
                                                                                                        241
                                                                                                        242
                                                                                                        243
                                                                                                        244
                                                                                                        245
                                                                                                        246
                                                                                                        247
                                                                                                        248
                                                                                                        249
                                                                                                        250
                                                                                                        251
                                                                                                        252
                                                                                                        253
                                                                                                        254
                                                                                                        255
                                                                                                        256
                                                                                                        257
                                                                                                        258
                                                                                                        259
                                                                                                        260
                                                                                                        261
                                                                                                        262
                                                                                                        263
                                                                                                        264
                                                                                                        265
                                                                                                        266
                                                                                                        267
                                                                                                        268
                                                                                                        269
                                                                                                        270
                                                                                                        271
                                                                                                        272
                                                                                                        273
                                                                                                        274
                                                                                                        275
                                                                                                        276
                                                                                                        277
                                                                                                        278
                                                                                                        279
                                                                                                        280
                                                                                                        281
                                                                                                        282
                                                                                                        283
                                                                                                        284
                                                                                                        285
                                                                                                        286
                                                                                                        287
                                                                                                        288
                                                                                                        289
                                                                                                        290
                                                                                                        291
                                                                                                        292
                                                                                                        293
                                                                                                        294
                                                                                                        295
                                                                                                        296
                                                                                                        297
                                                                                                        298
                                                                                                        299
                                                                                                        300
                                                                                                        301
                                                                                                        302
                                                                                                        303
                                                                                                        304
                                                                                                        305
                                                                                                        306
                                                                                                        307
                                                                                                        308
                                                                                                        309
                                                                                                        310
                                                                                                        311
                                                                                                        312
                                                                                                        313
                                                                                                        314
                                                                                                        315
                                                                                                        316
                                                                                                        317
                                                                                                        318
                                                                                                        319
                                                                                                        320
                                                                                                        321
                                                                                                        322
                                                                                                        323
                                                                                                        324
                                                                                                        325
                                                                                                        326
                                                                                                        327
                                                                                                        328
                                                                                                        329
                                                                                                        330
                                                                                                        331
                                                                                                        332
                                                                                                        333
                                                                                                        334
                                                                                                        335
                                                                                                        336
                                                                                                        337
                                                                                                        338
                                                                                                        339
                                                                                                        340
                                                                                                        341
                                                                                                        342
                                                                                                        343
                                                                                                        344
                                                                                                        345
                                                                                                        346
                                                                                                        347
                                                                                                        348
                                                                                                        349
                                                                                                        350
                                                                                                        351
                                                                                                        352
                                                                                                        353
                                                                                                        354
                                                                                                        355
                                                                                                        356
                                                                                                        357
                                                                                                        358
                                                                                                        359
                                                                                                        360
                                                                                                        361
                                                                                                        362
                                                                                                        363
                                                                                                        364
                                                                                                        365
                                                                                                        366
                                                                                                        367
                                                                                                        368
                                                                                                        369
                                                                                                        370
                                                                                                        371
                                                                                                        372
                                                                                                        373
                                                                                                        374
                                                                                                        375
                                                                                                        376
                                                                                                        377
                                                                                                        378
                                                                                                        379
                                                                                                        380
                                                                                                        381
                                                                                                        382
                                                                                                        383
                                                                                                        384
                                                                                                        385
                                                                                                        386
                                                                                                        387
                                                                                                        388
                                                                                                        389
                                                                                                        390
                                                                                                        391
                                                                                                        392
                                                                                                        393
                                                                                                        394
                                                                                                        395
                                                                                                        396
                                                                                                        397
                                                                                                        398
                                                                                                        399
                                                                                                        400
                                                                                                        401
                                                                                                        402
                                                                                                        403
                                                                                                        404
                                                                                                        405
                                                                                                        406
                                                                                                        407
                                                                                                        408
                                                                                                        409
                                                                                                        410
                                                                                                        411
                                                                                                        412
                                                                                                        413
                                                                                                        414
                                                                                                        415
                                                                                                        416
                                                                                                        417
                                                                                                        418
                                                                                                        419
                                                                                                        420
                                                                                                        421
                                                                                                        422
                                                                                                        423
                                                                                                        424
                                                                                                        425
                                                                                                        426
                                                                                                        427
                                                                                                        428
                                                                                                        429
                                                                                                        430
                                                                                                        431
                                                                                                        432
                                                                                                        433
                                                                                                        434
                                                                                                        435
                                                                                                        436
                                                                                                        437
                                                                                                        438
                                                                                                        439
                                                                                                        440
                                                                                                        441
                                                                                                        442
                                                                                                        443
                                                                                                        444
                                                                                                        445
                                                                                                        446
                                                                                                        447
                                                                                                        448
                                                                                                        449
                                                                                                        450
                                                                                                        451
                                                                                                        452
                                                                                                        453
                                                                                                        454
                                                                                                        455
                                                                                                        456
                                                                                                        457
                                                                                                        458
                                                                                                        459
                                                                                                        460
                                                                                                        461
                                                                                                        462
                                                                                                        463
                                                                                                        464
                                                                                                        465
                                                                                                        466
                                                                                                        467
                                                                                                        468
                                                                                                        469
                                                                                                        470
                                                                                                        471
                                                                                                        472
                                                                                                        473
                                                                                                        474
                                                                                                        475
                                                                                                        476
                                                                                                        477
                                                                                                        478
                                                                                                        479
                                                                                                        480
                                                                                                        481
                                                                                                        482
                                                                                                        483
                                                                                                        484
                                                                                                        485
                                                                                                        486
                                                                                                        487
                                                                                                        488
                                                                                                        489
                                                                                                        490
                                                                                                        491
                                                                                                        492
                                                                                                        493
                                                                                                        494
                                                                                                        495
                                                                                                        496
                                                                                                        497
                                                                                                        498
                                                                                                        499
                                                                                                        500
                                                                                                        501
                                                                                                        502
                                                                                                        503
                                                                                                        504
                                                                                                        505
                                                                                                        506
                                                                                                        507
                                                                                                        508
                                                                                                        509
                                                                                                        510
                                                                                                        511
                                                                                                        512
                                                                                                        513
                                                                                                        514
                                                                                                        515
                                                                                                        516
                                                                                                        517
                                                                                                        518
                                                                                                        519
                                                                                                        520
                                                                                                        521
                                                                                                        522
                                                                                                        523
                                                                                                        524
                                                                                                        525
                                                                                                        526
                                                                                                        527
                                                                                                        528
                                                                                                        529
                                                                                                        530
                                                                                                        531
                                                                                                        532
                                                                                                        533
                                                                                                        534
                                                                                                        535
                                                                                                        536
                                                                                                        537
                                                                                                        538
                                                                                                        539
                                                                                                        540
                                                                                                        541
                                                                                                        542
                                                                                                        543
                                                                                                        544
                                                                                                        545
                                                                                                        546
                                                                                                        547
                                                                                                        548
                                                                                                        549
                                                                                                        550
                                                                                                        551
                                                                                                        552
                                                                                                        553
                                                                                                        554
                                                                                                        555
                                                                                                        556
                                                                                                        557
                                                                                                        558
                                                                                                        559
                                                                                                        560
                                                                                                        561
                                                                                                        562
                                                                                                        563
                                                                                                        564
                                                                                                        565
                                                                                                        566
                                                                                                        567
                                                                                                        568
                                                                                                        569
                                                                                                        570
                                                                                                        571
                                                                                                        572
                                                                                                        573
                                                                                                        574
                                                                                                        575
                                                                                                        576
                                                                                                        577
                                                                                                        578
                                                                                                        579
                                                                                                        580
                                                                                                        581
                                                                                                        582
                                                                                                        583
                                                                                                        584
                                                                                                        585
                                                                                                        586
                                                                                                        587
                                                                                                        588
                                                                                                        589
                                                                                                        590
                                                                                                        591
                                                                                                        592
                                                                                                        593
                                                                                                        594
                                                                                                        595
                                                                                                        596
                                                                                                        597
                                                                                                        598
                                                                                                        599
                                                                                                        600
                                                                                                        601
                                                                                                        602
                                                                                                        603
                                                                                                        604
                                                                                                        605
                                                                                                        606
                                                                                                        607
                                                                                                        608
                                                                                                        609
                                                                                                        610
                                                                                                        611
                                                                                                        612
                                                                                                        613
                                                                                                        614
                                                                                                        615
                                                                                                        616
                                                                                                        617
                                                                                                        618
                                                                                                        619
                                                                                                        620
                                                                                                        621

                                                                                                        收集到的信息量非常大,但很幸运,只需关注其中常见的几项即可,比如系统版本号、主机名、IP地址、分区信息、挂载信息。

                                                                                                        有了这些信息,就可以去访问这些信息。由于它们都存放在ansible_facts变量中,所以通过这个变量去访问即可。但需要注意的是,对于收集到的绝大多数Facts信息,都有两种访问方式:

                                                                                                        (1).一种是debug查看ansible_facts变量得到的结果,这也是真正存储这些信息的方式

                                                                                                        (2).一种是命令行执行setup模块输出的方式

                                                                                                        直接使用debug模块去输出ansible_facts变量,即可知如何访问这些信息。例如:

                                                                                                        要获取eth0的ipv4地址:

                                                                                                        debug:
                                                                                                          var: ansible_facts.eth0.ipv4.address
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        再看在ansible命令行中执行setup模块的输出信息,会发现原本ansible_facts内几乎所有顶级的key现在都以ansible_开头,例如:

                                                                                                        debug:
                                                                                                          var: ansible_all_ipv4_addresses
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        之所以可以这样直接访问,是因为Ansible将Facts中绝大多数的顶级key都注入到了Ansible自身维护的变量表(即hostvars)中,这样访问它们就方便的多。

                                                                                                        至于采用何种方式访问,这无所谓,但是要知道的是,虽然绝大多数Facts信息都单独定义了变量,但并非所有(主要是那些可能产生歧义或冲突的变量)。

                                                                                                        另外再多提醒一句,ansible_facts自身也是变量,它也保存在各自节点的hostvars变量中,所以也可以通过hostvars去访问Facts信息。例如:

                                                                                                        debug:
                                                                                                          var: hostvars['logstash2']['ansible_facts'].eth0.ipv4.address
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        通常情况下,我们在运行play的时候,ansible会先尝试ssh到被控端采集fact,如果此时,被控制端的ssh还没有完全启动,就会导致整个play执行失败。这个时候,我们可以先显示的关闭fact采集,然后在task中通过wait_for等待被控端ssh端口被正常监听,再在task中使用setup模块来手动采集fact:

                                                                                                        - name: Deploy apps
                                                                                                          hosts: webservers
                                                                                                          gather_facts: false
                                                                                                          tasks:
                                                                                                            - name: wait for ssh to be running
                                                                                                              local_action: wait_for port=22 host="{{ inventory_hostname }}" search_regex=OpenSSH
                                                                                                            - name: gather facts
                                                                                                              setup:
                                                                                                            ......
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        9

                                                                                                        # 4 启用fact缓存

                                                                                                        如果在play中需要引入fact,则可以开启fact缓存。fact缓存目前支持三种存储方式,分别为JSON、memcached、redis。

                                                                                                        redis:缓存在redis服务中,直到目前(Ansible 2.9)为止,Ansible还不支持指定连接redis的端口、密码等

                                                                                                        1.gathering:控制Ansible是否自动收集Facts,它有三种值:

                                                                                                        (1).implicit:这是默认值,表示执行play时会自动收集Facts,除非显式指定gather_facts: false禁止收集

                                                                                                        (2).explicit:不自动收集Facts,除非显式指定gather_facts: true开启收集

                                                                                                        (3).smart:自动收集Facts,但如果已存在(缓存)则不重复收集

                                                                                                        # 4.1 Json文件fact缓存后端

                                                                                                        使用JSON文件作为fact缓存后端的时候,ansible将会把采集的fact写入到控制主机的文件中。

                                                                                                        ansible.cfg配置如下:

                                                                                                        [defaults]
                                                                                                        gathering = smart
                                                                                                        #缓存时间,单位为秒
                                                                                                        fact_caching_timeout = 86400    
                                                                                                        fact_caching = jsonfile
                                                                                                        #指定ansible包含fact的json文件位置,如果目录不存在,会自动创建
                                                                                                        fact_caching_connection = /tmp/ansible_fact_cache    
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7

                                                                                                        # 4.2 Redis fact缓存后端

                                                                                                        使用redis作为fact缓存后端,需要在控制主机上安装redis服务并保持运行。需要安装python操作redis的软件包。

                                                                                                        ansible.cfg配置如下:

                                                                                                        [defaults]
                                                                                                        gathering = smart
                                                                                                        fact_caching_timeout = 86400 
                                                                                                        fact_caching = redis
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4

                                                                                                        # 4.3 Memcached fact缓存后端

                                                                                                        使用memcached作为fact缓存后端,需要在控制主机上安装Memcached服务并保持运行,需要安装python操作memcached的软件包。

                                                                                                        ansible.cfg配置如下:

                                                                                                        [defaults]
                                                                                                        gathering = smart
                                                                                                        fact_caching_timeout = 86400 
                                                                                                        fact_caching = memcached
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4

                                                                                                        # 5 关闭fact

                                                                                                        如果不想从fact中获取变量,或者说整个playbook当中都没有使用到fact变量,可以通过如下方法关闭fact以提升执行效率:

                                                                                                        - hosts: test
                                                                                                          gather_facts: false
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        也可以在ansible.cfg中添加如下配置:

                                                                                                        [defaults]
                                                                                                        gathering = explicit
                                                                                                        
                                                                                                        1
                                                                                                        2

                                                                                                        # 6 委托Facts

                                                                                                        略:我暂时还没有用到

                                                                                                        edit icon编辑此页open in new window
                                                                                                        上次编辑于: 2022/4/27 15:33:00
                                                                                                        贡献者: clay-wangzhi
                                                                                                        上一页
                                                                                                        5.1 自定义变量
                                                                                                        下一页
                                                                                                        5.3 魔法变量
                                                                                                        备案号:冀ICP备2021007336号
                                                                                                        Copyright © 2023 Clay