如何設定Ansible AWS的動態清單

JFrog傑蛙科技發表於2020-06-24


當您將Ansible與AWS結合使用時,維護清單檔案將是一項繁重的任務,因為AWS經常更改IP,自動縮放例項等。但是,有一個簡單的解決方案就是ansible動態清單。它基本上是一個Python指令碼,當您執行ansible命令時會進行API呼叫以獲取例項資訊。這將為您提供動態清單詳細資訊,這些資訊可以用來方便管理AWS基礎架構。


如何設定Ansible AWS的動態清單

設定Ansible AWS動態清單


1.使用pip安裝boto庫。如果您尚未安裝pip,則可以按照此文件進行安裝–>  安裝python pip

pip install boto


2.將清單指令碼下載到/ etc / ansible目錄。

Wget https://raw.github.com/ansible/ansible/devel/contrib/inventory/ec2.py


3.使檔案可執行。

chmod + x ec2.py


4.將ec2.ini檔案下載到/ etc / ansible目錄。

https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.ini


5. ec2.ini檔案具有預設的AWS配置,可透過ec2.py檔案讀取。因此,請註釋掉並配置必要的引數,以免查詢時間過長。這樣的例子就是“ regions”引數。預設情況下,該值為“ all”。這樣可以對所有區域進行API呼叫。因此,最好只提及您使用的特定aws區域。

在[credentials]部分下,您需要提及abos訪問金鑰和私鑰,以便boto庫進行API呼叫。

或者,您可以在家裡建立一個憑證檔案,如下所示。

touch ~/.aws/credentials


開啟憑證檔案,然後如下所示進行輸入。

[default]

aws_access_key_id = YOUR_ACCESS_KEY

aws_secret_access_key = YOUR_SECRET_KEY

注意:如果您正在使用AWS例項進行此設定,並且具有具有訪問AWS服務許可權的IAM角色,則無需將訪問金鑰和秘密金鑰新增到憑證檔案中

6 現在,使用以下命令測試清單配置。

./ec2.py --list

應該獲得如下所示的輸出。

{

  “ _meta”:{

    “ hostvars”:{}

  }

}

如果您有一些例項正在執行,則將獲得包含所有例項詳細資訊的輸出。


7.如果要將動態清單用作預設的ansible清單,則需要編輯/ etc / ansible目錄中存在的ansible.cfg檔案,並在ansible.cfg中搜尋清單引數。如下所示更改庫存引數值。

inventory      = /etc/ansible/ec2.py

現在,您可以對動態清單資源執行正常的ansible命令。例如,以下命令將對使用動態清單獲取的所有正在執行的ec2例項執行ping命令。

ansible all -m ping


關注每週二晚八點JFrog線上課堂,獲取更多技術分享。

關注微信公眾號“JFrog傑蛙DevOps”,獲取課程通知


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2700414/,如需轉載,請註明出處,否則將追究法律責任。

相關文章