Ansibleは、RedHatが提供する無料のオープンソース自動化ツールです。 ansibleを使用すると、エージェントをインストールせずにLinuxおよびWindowsシステムを管理および構成できます。基本的にsshプロトコルで動作し、一度に100台以上のサーバーを構成できます。 Ansibleの用語では、Ansibleがインストールされているシステムを制御ホスト/ノードと呼び、ansibleによって管理されているシステムを管理対象ホストと呼びます。
この投稿では、最新バージョンのAnsibleをRocky Linux 8にインストールする方法について説明します。Ansibleラボのセットアップの詳細は次のとおりです:
- コントロールノード– 192.168.1.170 –最小限のRocky Linux 8
- マネージドホスト1– 192.168.1.121 – Ubuntu 20.04 LTS
- マネージドホスト2– 192.168.1.122 – Rocky Linux 8
- 管理者権限を持つsysopsユーザー
dnfコマンドでAnsibleをインストール
1)システムを更新します
Rocky Linux 8を更新するには、dnfコマンドの下で実行します。
$ sudo dnf update -y
すべてのアップデートがインストールされたら、システムを1回再起動します。
$ sudo restart
2)EPELリポジトリを構成する
Ansibleパッケージとその依存関係は、デフォルトのRockyLinux8パッケージリポジトリでは利用できません。したがって、dnfを介してansibleをインストールするには、最初にEPELリポジトリを構成する必要があります。
次のコマンドを実行します
$ sudo dnf install -y epel-release
3)dnfコマンドでAnsibleをインストールする
これで、dnfコマンドを使用してansibleをインストールし、実行する準備が整いました
$ sudo dnf install ansible -y
ansibleとその依存関係が正常にインストールされたら。次のコマンドを実行して、バージョンを確認します。
$ ansible --version
pipを使用したAnsibleインストール
最新バージョンのAnsibleをお探しの場合は、pipを使用してansibleをインストールしてください。次の手順を参照してください。
注:この投稿を書いている時点で、ansible4.3.0が利用可能です
1)すべてのアップデートをインストールします
以下のコマンドを使用して、利用可能なすべての更新をインストールします
$ sudo dnf update -y
アップデートをインストールした後、システムを1回再起動します。
$再起動
2)python3.8およびその他の依存関係をインストールします
次のコマンドを実行して、Python3.8およびその他の依存関係をインストールします
$ sudo dnf module -y install python38 $ sudo Alternatives --config python
3と入力し、Enterキーを押します
3)最新バージョンのAnsibleをpipでインストールする
次のコマンドを次々に実行して、ansibleをインストールします
$ sudo pip3 install setuptools-rust Wheel $ sudo pip3 install --upgrade pip $ sudo python -m pip install ansible
上記のpythonコマンドの出力は以下のようになります:
上記の出力は、Ansibleが正常にインストールされたことを確認します。次のansibleコマンドを使用してAnsibleのバージョンを確認しましょう
$ ansible --version
Ansibleのインストールを確認する
Ansibleがdnfまたはyumコマンドでインストールされると、デフォルトの構成ファイル「ansible.cfg」が「/ etc/ansible」フォルダーの下に自動的に作成されます。ただし、pipを使用してインストールする場合は、構成ファイルを手動で作成する必要があります。
プロジェクトごとにansible.cfgを作成することをお勧めします。デモンストレーションの目的で、自動化プロジェクトを作成しています。次のmkdirコマンドを実行します
$ mkdir Automation $ cd Automation
次の内容でansible.cfgファイルを作成します
$ vi ansible.cfg [defaults] Inventory =/ home / sysops / auotmation / Inventoryremote_user =sysopshost_key_checking =False [privilege_escalation] begin =Truebecome_method =sudobecome_user =rootbecome_ask_pass =Falseファイルを保存して終了します。
次に、自動化プロジェクト(フォルダー)の下に、次のコンテンツを含むインベントリファイルを作成します。
$ vi Inventory [prod] 192.168.1.121 [test] 192.168.1.122
ファイルを保存して閉じます。
慎重にansible.cfgファイルに気付いた場合は、remote_userを「sysops」として使用しました。それでは、sysopsユーザー用のsshキーを作成し、管理対象ホスト間で共有しましょう。
$ ssh-keygen
ssh-copy-idコマンドを使用してSSHキーを共有します
$ssh-copy-id[メール保護]$ssh-copy-id[メール保護]
注:各管理対象ホストで次のコマンドを実行して、パスワードを要求せずにすべてのコマンドを実行します。
#echo "sysops ALL =(ALL)NOPASSWD:ALL"> /etc/sudoers.d/sysops
pingモジュールを使用して、制御ノードから管理対象ホストへの接続を確認します。
$ cd Automation / $ ansible -i Inventory all -m ping
管理対象ホストにnginxとphpをインストールするためのサンプルプレイブック(web.yaml)を作成しましょう
$ vi web.yaml ----名前:パッケージに再生ホスト:-テスト-prodタスク:-名前:phpとnginxをインストールパッケージ:名前:-php-nginx状態:存在
ファイルを保存して閉じます。
以下のansible-playbookコマンドを使用してプレイブックを実行します
$ ansible-playbook -i Inventory web.yaml
上記のコマンドの出力は以下のようになります
上記の出力は、Playbookが正常に実行されたことを確認し、Ansibleが正しくインストールされていることも確認します。
この投稿からは以上です。この投稿は、Rocky Linux 8にAnsibleをインストールして使用するのに役立つと思います。以下のコメントセクションで、フィードバックやクエリを共有してください。
おすすめの記事: AnsiblePlaybookでハンドラーを使用する方法