ansible剧本-变量-常用参数

发布时间 2023-04-18 15:36:40作者: 往事已成昨天

ansible剧本-变量-常用参数

Cloud研习社 Cloud研习社 2023-04-18 07:31 发表于山东
图片图片

教程每周二、四、六更新

图片ansible还有一个常用的模块:setup模块。setup 模块用于收集远程主机的一些基本信息。常用参数:filter:用于进行条件过滤。如果设置,仅返回匹配过滤条件的信息获取com主机信息:
[root@m01 ansible]# ansible com -m setup
172.16.1.15 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "10.0.0.15",
            "172.16.1.15"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::dd90:5b75:89f7:f24e",
            "fe80::dab3:7d35:f064:7071",
            "fe80::3447:ce6e:eaf8:7cf9",
            "fe80::95d4:89f5:d2c:68e5",
            "fe80::5762:95f3:78e2:1810"
        ],
        "ansible_apparmor": {
            "status": "disabled"
        },
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "07/29/2019",
        "ansible_bios_version": "6.00",
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-3.10.0-1160.el7.x86_64",
            "LANG": "en_US.UTF-8",
            "crashkernel": "auto",
            "quiet": true,
            "rd.lvm.lv": "centos/swap",
            "rhgb": true,
            "ro": true,
            "root": "/dev/mapper/centos-root"
        },
        "ansible_date_time": {
......

返回的信息非常多,很多情况我们并不需要全部的信息,可以通过过滤获得指定的信息。

获取com主机的主机名:

[root@m01 ansible]# ansible com -m setup -a "filter=ansible_hostname"
172.16.1.15 | SUCCESS => {
    "ansible_facts": {
        "ansible_hostname": "web02",
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}
172.16.1.14 | SUCCESS => {
    "ansible_facts": {
        "ansible_hostname": "web01",
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}
[root@m01 ansible]# ansible com -m setup -a "filter=ansible_fqdn"
172.16.1.15 | SUCCESS => {
    "ansible_facts": {
        "ansible_fqdn": "web02",
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}
172.16.1.14 | SUCCESS => {
    "ansible_facts": {
        "ansible_fqdn": "web01.studyclub",
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
}

获取com主机的内存信息(支持模糊匹配):

[root@m01 ansible]# ansible com -m setup -a "filter=*mb"
172.16.1.15 | SUCCESS => {
    "ansible_facts": {
        "ansible_memfree_mb": 440,
        "ansible_memory_mb": {
            "nocache": {
                "free": 779,
                "used": 193
            },
            "real": {
                "free": 440,
                "total": 972,
                "used": 532
            },
            "swap": {
        ...... # 篇幅受限,这里就不一一展示了

好了,上面我们过滤出来了想要看的内容,其实都是变量。ansible有许多变量,上面查到的ansible_facts中的所有变量都是可以直接调用的。

facts是ansible定义的被管理主机的变量,通过这些变量,可以拿到被管理主机的相关信息。在ansible运行playbook之前会先获取被管理主机的相关信息,这个获取过程比较慢,如果不需要这些变量,那么可以不用收集这些信息:

- hosts: ctl
  gather_facts: no      # 通过这个方式就可以关闭对被管理主机的信息收集
  ......

下一节我们来看如何引用和定义变量。


 

雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!

图片

推荐阅读

 

《一站式教程之集群架构》:

ansible剧本(playbook)- 快速入门

ansible剧本-YAML语法

ansible剧本-playbook核心元素

ansible-playbook命令

playbook核心元素之handlers、notify

playbook核心元素之tags

 

 

看完本文有收获?请分享给更多人

推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
180篇原创内容

图片


图片

 

收录于合集 #ansible
 25
上一篇playbook核心元素之tags
阅读 68