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

相關問題