はじめに
Ansibleは、Infrastructure as Codeツールであり、1つの中央の場所から多数のサーバーを監視および制御できます。
他の同様のシステムに対するAnsibleの主な利点は、SSHおよびYAML構成ファイルを使用し、追加の専用ソフトウェアを必要としないことです。
このチュートリアルでは、Ubuntu20.04にAnsibleをインストールして構成する方法について説明します。
前提条件
- Ubuntu20.04を実行しているシステム
- コマンドライン/ターミナルウィンドウへのアクセス
ステップ1:Ansibleコントロールノード、ホスト、SSHキーペアを構成する
UbuntuにAnsibleをインストールする前に、いくつかの設定が行われていることを確認してください。構成には、Ansibleコントロールノードと1つ以上のAnsibleホストが必要です。
Ansibleコントロールノードの設定
Ansibleコントロールノードを設定するには、rootユーザーとしてログインします。管理者権限を持つ別の(root以外の)ユーザーを作成してから、新しいユーザーのSSHキーペアを追加します。
1. rootとして、コントロールノードの管理者レベルのユーザーを追加します。 adduser
を使用します コマンド:
# adduser [username]
2.強力なアカウントパスワードを定義し、オプションで質問のリストに回答します。
3. Enterを押します 現時点で入力したくないフィールドをスキップします。
4.新しいアカウントの準備が整いました。次に、アカウントに管理アクセスを割り当てます。次のコマンドはスーパーユーザー権限を割り当て、アカウントが sudo
を使用できるようにします コマンド:
# usermod -aG sudo [username]
sudo
を使用 コマンドを実行すると、新しいユーザーは管理タスクを実行できるようになります。 Ansibleコントロールノードを使用する場合は、新しいユーザーアカウントにログインします。
SSHキーペアの設定
1.Ansibleコントロールノードターミナルで次のコマンドを入力します。
$ ssh-keygen
2.入力を押す は次の出力を示しています:
3. SSHキーペアがすでに設定されている場合、システムは以下の出力を表示します。既存のSSHキーペアを上書きするかどうかを決定します。
4.最後に、パスフレーズを入力するように求められます。今後のセキュリティ問題を回避するために、強力なパスフレーズを追加することを強くお勧めします。
出力は次のようになります。
Ansibleホストの構成
Ansibleホスト Ansibleコントロールノードによって監視および制御されるリモートサーバーです。各ホストは、システムユーザーの承認済みキーディレクトリにコントロールノードのSSHキーを持っている必要があります。
1. SSH公開鍵を設定する最も簡単な方法は、 ssh-copy-id
を使用してそれをコピーすることです。 コマンド:
$ ssh-copy-id [email protected]_host
2.このコマンドを初めて使用すると、次のメッセージが表示される場合があります。
この種の出力は正常であり、新しいリモートホストに初めて接続したときに表示されます。
3.続行するには、yes
と入力するだけです。 Enterを押します 。
ユーティリティは、前の手順で生成されたキーペアの公開部分を検索するようになりました。
4.見つかったら、リモートホストアカウントのパスワードを入力します。
5. Enterを押してパスワードを確認します 。ユーティリティは公開鍵をリモートホストのアカウントにアップロードし、次の出力を表示します。
ステップ2:Ansibleをインストールする
1.システムのパッケージインデックスが最新であることを確認します。次のコマンドでパッケージインデックスを更新します:
$ sudo apt update
2.次に、次のコマンドを使用して、UbuntuにAnsibleをインストールします。
$ sudo apt install ansible
3.インストールにより、 Y
を押すように求められます 確認のため、残りのインストールプロセスは自動化されています。
インストールすると、Ansibleコントロールノードはリモートホストを管理できます。
ステップ3:インベントリファイルの設定
リモートホストのインベントリファイルを設定して、Ansibleがリモートホストと通信できるようにします。
1.インベントリファイルにアクセスするには、コントロールノードのターミナルで次のコマンドを使用します。
$ sudo nano /etc/ansible/hosts
Ansibleインベントリファイルのデフォルトパスは/etc/ansible/hosts
です。 、ただし、 -i
を使用してカスタムパスを指定することもできます パラメータ:
2.インベントリファイルを開いた状態で、コントロールノードが管理するリモートホストの追加を開始できます。デフォルトのAnsibleインベントリファイルは、リモートホストのリストを作成する際の一般的なアドバイスと例をリストすることから始まります。
3.ファイルの一番下までスクロールして、新しいホストを追加し、それらをカテゴリに分類します。ホストとカテゴリを追加するときは、次の形式を使用してください。
[category name]
server_name ansible_host=[server_ip]
この例では、 server1というリモートホストを追加しました IPアドレスを使用して、 [servers]
に並べ替えます カテゴリ:
4. Ansibleのインベントリへのアイテムの追加が完了したら、 Ctrlを押します + X 次に、 Yを押します インベントリファイルを保存します。
5.インベントリファイルを設定したら、次を使用していつでも再度確認できます。
$ ansible-inventory --list -y
ターミナルウィンドウに、ホストインフラストラクチャを一覧表示する出力が表示されます。
ステップ4:接続のテスト
最後のステップは、Ansibleコントロールノードがリモートホストに接続してコマンドを実行することを確認することです。
1.ホストとの接続をテストするには、コントロールノードのターミナルで次のコマンドを使用します。
$ ansible all -m ping
2.通常の状況では、これはステップ1ですでに設定した非rootユーザーになります。何らかの理由でデフォルトのrootユーザーとして接続をテストする必要がある場合は、-u
コマンドを使用した引数:
$ ansible all -m ping -u root
コマンドを実行すると、次のような出力が生成されます。
3.リモートホストに初めて接続する場合、Ansibleはホストが本物であることを確認するように求めます。プロンプトが表示されたら、「はい」と入力し、Enterキーを押して信頼性を確認します。
すべてのリモートホストが「ポン」で応答すると、Ansibleコントロールノードを介してコマンドの実行を開始する準備が整います。