如何创建Ansible playbook来获取远程主机的操作系统版本?
我是新来的人。我有一个要求,要求我为AWS中托管的450多个Linux服务器提供操作系统版本。 AWS不提供此功能 - 它建议我们从傀儡或厨师那里获得它。如何创建Ansible playbook来获取远程主机的操作系统版本?
我创建了不运行
---
- 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
剧本几个简单的剧本应该输出与主机名和操作系统版本的文本文件。任何有关这方面的见解将不胜感激。
“AWS不提供此功能” - 您可以检查文件/etc/os-release
以获取aws实例的详细信息。
例如
[[email protected] ~]$ cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2016.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2016.03"
PRETTY_NAME="Amazon Linux AMI 2016.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2016.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
- name: obtain OS version
shell: Redhat-release
register: result
- name: print OS version
debug: var=result.stdout
谢谢smiller171 我尝试以下 任务打印标准输出: - 名称:收集远程主机 外壳的操作系统版本:猫的/ etc/redhat的释放 - 名称:Pring OS版本 debug:var = result.stdout TASK [打印操作系统版本] *************************** ***************************** ok:[IP] => { “result.stdout”:“VARIABLE is NOT DEFINED !” Var未定义出现 – AmigoSe
再次看看我的例子。注册你的shell命令的结果很重要。 – smiller171
感谢涡然而,对于响应,如果我是登陆到450个红帽服务器和猫的/ etc/redhat的释放。我将最有可能去坚果情侣小时....这就是为什么我想使用可以自动执行此操作的原因。任何Ansible专家在这里? – AmigoSe
为什么不只是'shell:cat/etc/os-release' ??? – Vor
你还需要使用debug从你的'cat'命令 – smiller171