Ansibleは、システム管理者や開発者がコンピューターを特定の状態にするために使用する一般的な自動化ツールです。 Ansibleモジュールは、ある意味で、Linuxコンピューターに対するコマンドです。これらは特定の問題の解決策を提供し、コンピューターを保守する際の1つの一般的なタスクは、コンピューターを最新の状態に保ち、一貫性を保つことです。この記事では、Ansibleを使用してソフトウェアパッケージをインストールする方法を紹介します。
要件
管理対象ノードでAnsibleアドホックコマンドとプレイブックを実行するには、SSHアクセス権を持つリモートユーザーが各管理対象ノードに必要です。 。この例では、そのユーザーを tuxと呼びます。 。 Tuxには、パッケージをインストールするための昇格された特権でコマンドを実行するためのアクセス許可が必要です。したがって、ファイル/etc/sudoers.d/tux
次のコンテンツがすべての管理対象ノードに存在する必要があります:
tux ALL=(ALL) NOPASSWD:ALL
visudo
を使用する /etc/sudoers
を編集するには ファイルエントリ。
パッケージのインストール
sysstat
というクールな新しいパッケージを見つけたとします。 これで、すべてのホストに一度にインストールする必要があります。これはAnsibleにとって簡単な仕事です:
$ ansible all --user tux --become \
--module-name dnf -a’name=sysstat state=latest’
これで完了です。
[次のこともお勧めします:AnsiblePlaybookの作成方法]
その1行はAnsibleアドホックコマンドと呼ばれます。これらは通常、繰り返すことを期待しない1回限りのタスクです。ただし、再利用性を高めるために、次のように、そのような指示をAnsibleプレイブックに入れることをお勧めします。
---
- hosts: all
tasks:
- name: Make sure the current version of ‘sysstat’ is installed.
dnf:
name: sysstat
state: latest
このプレイブックをinstall_packages.yml
というファイルに保存します 、その後、次のコマンドで実行できます:
$ ansible-playbook -u tux -b install_packages.yml
cron
を使用してスケジュールに入れることができます 、誰かがパッケージを削除した場合に、目的のパッケージがインストールされ、再インストールされることを確認します。
複数のパッケージをインストールする
すべてのホストにパッケージのリストをインストールしたい場合はどうなりますか?それも簡単です:
---
- hosts: all
tasks:
- name: Package installation
dnf:
name:
- sysstat
- httpd
- mariadb-server
state: latest
プレイブックを実行する:
$ ansible-playbook -u tux -b install_packages.yml
きっとあなたはその考えを理解するでしょう。より多くのパッケージが必要ですか?それらをリストに追加するだけです。
まとめ
Ansibleを使用したソフトウェアの管理は非常に簡単です。 DNFモジュールを使用して実際のインストールを管理し、YAMLベースのAnsibleプレイブックを使用してインストール手順を管理対象ノードに配布できます。これは、Ansibleが多くのシステムを管理するシステム管理者の生活を楽にする方法のもう1つの優れた例です。
[この無料の電子書籍を入手する:ダミーのKubernetesクラスターを管理する。 ]