このブログでは、単純なAnsible Server Updateスクリプトを取り、リスクベースの更新システムに変換します。ここでは、リスクが最も低いサーバーが最初にパッチが適用され、より優先順位システムに進む前に徹底的にテストする機会が与えられます。
ホストファイル
しかし、ここにひねりがあります:ホストファイルをより一般的なソースから動的に生成できる場合はどうなりますか?それは物事を柔軟に保ち、無限のファイルの編集から私たちを救うでしょう!
動的ホストリスト
例hosts_data.xlsx構造:
サーバー環境 | ansibleユーザー | サーバータイプ | dns | notes | |
---|---|---|---|---|---|
dev | リチャード | デスクトップ | desktop.sebostech.local | ミントデスクトップ | |
dev | ansible_admin | ansible | ansible_node.sebostech.local | Development Server;毎月のみ | を更新する |
dev | ansible_admin | クローン | clone.dev.sebostech.local | Development Server;毎月のみ | を更新する |
ステージング | リチャード | nas | nas.stage.sebostech.local | テストサーバー;アプリケーションテストに使用 | |
生産 | 根 | バックアップサーバー | pbs.prod.sebostech.local | テストサーバー;アプリケーションテストに使用 | |
生産 | 根 | Hypervisor | api.stage.sebostech.local | テストサーバー;アプリケーションテストに使用 | |
生産 | リチャード | nas | nas.prod.sebostech.local | critical server;毎日のバックアップが必要です | |
生産 | リチャード | ファイアウォール | firewall.sebostech.local | critical server;毎日のバックアップが必要です |
しかし、AnsibleはExcelファイルをどのように使用しますか?このデータを使用可能な動的在庫に変換する方法に飛び込みましょう!
## This will run agains all host ansible-playbook -i dynamic_inventory.py playbook.ymlサーバー環境、サーバータイプ、または両方の組み合わせに基づいて、環境変数オプションを使用することもできます。
##ただの生産
server_environment = "production"
ansible-playbook -i dynamic_inventory.py playbook.yml - limit "high:web"
##ただのNAS
server_type = "nas"
ansible-playbook -i dynamic_inventory.py playbook.yml - limit "high:web"
##生産nas
server_environment = "production"
server_type = "nas"
ansible-playbook -i dynamic_inventory.py playbook.yml - limit "high:web"
## Just production SERVER_ENVIRONMENT="production" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## Just nas SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## production nas SERVER_ENVIRONMENT="production" SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"
Pythonコードを見るには、こちらを参照してください。
ホストファイルを使用してみませんか?
従来のホストファイルを使用してこれを達成できますか?確かにいくつかの欠点があります。
ホストファイルを使用すると、必要なすべての構造をキャプチャするための複製エントリまたは追加の変数が表示される可能性があります。一方、Excelファイルは、物事を整理したままにしておくと、清潔で容易な構造を提供します。
企業環境では、サーバーリストを備えた少なくとも1つのExcelファイルがすでにある可能性が高いので、それを利用してみませんか?
Pythonコードをさらに深く掘り下げたい場合は、私に知らせてください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3