2

我是新来的人。我有一个要求,要求我为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 

剧本几个简单的剧本应该输出与主机名和操作系统版本的文本文件。任何有关这方面的见解将不胜感激。

回答

1

“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/" 
+0

感谢涡然而,对于响应,如果我是登陆到450个红帽服务器和猫的/ etc/redhat的释放。我将最有可能去坚果情侣小时....这就是为什么我想使用可以自动执行此操作的原因。任何Ansible专家在这里? – AmigoSe

+0

为什么不只是'shell:cat/etc/os-release' ??? – Vor

+0

你还需要使用debug从你的'cat'命令 – smiller171

1
- name: obtain OS version 
    shell: Redhat-release 
    register: result 

- name: print OS version 
    debug: var=result.stdout 
+1

谢谢smiller171 我尝试以下 任务打印标准输出: - 名称:收集远程主机 外壳的操作系统版本:猫的/ etc/redhat的释放 - 名称:Pring OS版本 debug:var = result.stdout TASK [打印操作系统版本] *************************** ***************************** ok:[IP] => { “result.stdout”:“VARIABLE is NOT DEFINED !” Var未定义出现 – AmigoSe

+0

再次看看我的例子。注册你的shell命令的结果很重要。 – smiller171

相关问题