linux – 如何创建Ansible playbook以获取远程主机的操作系统版
发布时间:2020-12-14 01:12:48 所属栏目:Linux 来源:网络整理
导读:我是ansible的新手.我有一个要求,要求我为AWS中托管的450多个 Linux服务器提取操作系统版本. AWS不提供此功能 – 它建议我们从木偶或厨师那里获取它. 我创建了几个没有运行的简单剧本 ---- hosts: testmachineuser: ec2-usersudo: yestasks:- name: Update a
我是ansible的新手.我有一个要求,要求我为AWS中托管的450多个
Linux服务器提取操作系统版本. AWS不提供此功能 – 它建议我们从木偶或厨师那里获取它.
我创建了几个没有运行的简单剧本 --- - hosts: testmachine user: ec2-user sudo: yes tasks: - name: Update all packages to latest yum: name=* state=latest task: - name: obtain OS version shell: Redhat-release playbook应该输出一个带有主机名和操作系统版本的文本文件.任何有关这方面的见解将受到高度赞赏. 解决方法
使用以下Jinja2表达式之一:
{{ hostvars[inventory_hostname].ansible_distribution }} {{ hostvars[inventory_hostname].ansible_distribution_major_version }} {{ hostvars[inventory_hostname].ansible_distribution_version }} 哪里: > hostvars和ansible _…由Ansible内置并自动收集 例如,假设您针对运行CentOS 7发行版的主机host.example.com运行Ansible角色test_role: --- - debug: msg: "{{ hostvars[inventory_hostname].ansible_distribution }}" - debug: msg: "{{ hostvars[inventory_hostname].ansible_distribution_major_version }}" - debug: msg: "{{ hostvars[inventory_hostname].ansible_distribution_version }}" 会给你: TASK [test_role : debug] ******************************************************* ok: [host.example.com] => { "msg": "CentOS" } TASK [test_role : debug] ******************************************************* ok: [host.example.com] => { "msg": "7" } TASK [test_role : debug] ******************************************************* ok: [host.example.com] => { "msg": "7.5.1804" } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |