Ansibleは、Linuxベースのサーバーで非常にうまく機能する自動化ツールセットですが、WindowsやVMwareなどの他のクラウドサーバーとも互換性があります(いくつか例を挙げます)。 Ansibleは、Pythonが機能することだけを必要とするエージェントレスアプリケーションです。これは、ほぼすべてのLinuxディストリビューションのデフォルトアプリケーションです。
管理タスクを自動化し、目的の状態インフラストラクチャを作成するのに優れています(すべてのサーバーが同じであることを確認してください)。
AnsibleはSSHプロトコルを使用して動作するため、リモートサーバーにソフトウェアやエージェントは必要ありません。 ChefやPuppetなどの他の自動化ツールの優れた代替手段です。
この記事では、Ubuntu18.04サーバーにAnsibleをインストールして構成する方法を紹介します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- できれば、いくつかのLinuxテストサーバー(UbuntuまたはDebian)を使用します。
- サーバーで構成されているrootパスワード。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–SSHキーベースの認証を構成する
AnsibleはSSHを使用してリモートホストから情報を取得します。 AnsibleサーバーがSSHパスワードを入力せずにリモートホストと通信できるように、リモートホストのキーベースの認証を設定する必要があります。
まず、次のコマンドを使用して、AnsibleサーバーでSSHキーを生成します。
ssh-keygen -t rsa
次の出力が得られるはずです:
公開/秘密rsaキーペアの生成。キーを保存するファイルを入力してください(/root/.ssh/id_rsa):作成されたディレクトリ'/root/.ssh'。パスフレーズを入力してください(パスフレーズがない場合は空):同じものを入力してくださいもう一度パスフレーズ:IDは/root/.ssh/id_rsaに保存されています。公開鍵は/root/.ssh/id_rsa.pubに保存されています。鍵の指紋は次のとおりです。SHA256:HzUXrR + ltn9w0mwz5 + hKeFzEOPcJrLTKi9C72Y7elAEexample@unixlinux。 onlineキーのランダムアートイメージは次のとおりです:+ --- [RSA 2048] ---- + | .. || .o .o || E。=o=o。|| 。 ..o *=o。|| S..o .. * o || 。 ..++。+oB|| 。 。 =o + O + || 。 O.o。 + || .Bo=.o。 。|+---- [SHA256] ----- +
次に、次のコマンドを使用して、生成されたキーをリモートホストにコピーします。
ssh-copy-id -i〜/ .ssh / id_rsa.pub [email protected]
次に、次のコマンドを使用してSSHパスワードなしのログインを確認します。
ssh [email protected]
ステップ3–Ansibleをインストールする
次のコマンドでAnsiblePPAを追加できます:
apt-add-repository ppa:ansible / ansible
Ansible PPAを追加した後、リポジトリを更新し、次のコマンドでAnsibleをインストールします。
apt-get update -yapt-get install ansible -y
インストールが完了したら、次の手順に進むことができます。
ステップ4–Ansibleホストを構成する
次に、リモートサーバーを定義するためにAnsiblehostsファイルを構成する必要があります。次のコマンドを使用して、/ etc / ansible/hostsを編集できます。
nano / etc / ansible / hosts
以下に示すように、単一のホストまたはホストのグループを追加できます。
[webservers] webserver1 ansible_ssh_host =192.168.1.2 ansible_ssh_port =22 ansible_ssh_user =rootwebserver2 ansible_ssh_host =192.168.1.3 ansible_ssh_port =22 ansible_ssh_user =root [databaseservers] dbserver1 ansible_ssh_host =192.168.1.4 ansible終了したら、ファイルを保存して閉じます。
上記のファイルでは、webserver1とwebserver2を使用してWebサーバーのIPアドレス、SSHポート、およびユーザー名を定義し、dbserver1を使用してデータベースサーバーのIPアドレス、SSHポート、およびユーザー名を定義しています。
次に、ファイル/etc/ansible/ansible.cfgを編集してPython警告を無効にします:
nano /etc/ansible/ansible.cfg[デフォルト]の下に次の行を追加します:
deprecation_warnings =False終了したら、ファイルを保存して閉じます。
この時点で、AnsibleサーバーはWebサーバーとデータベースサーバーを管理する準備ができています。
ステップ5–Ansibleのテスト
Ansibleサーバーをセットアップしたら、すべてのAnsibleホストの接続をテストします。
Ansibleサーバーで、次のコマンドを実行して、すべてのホストの接続をテストします。
ansible -m ping allすべてが正常であれば、次の出力が得られるはずです:
dbserver1などの特定のホストの接続をテストするには、次のコマンドを実行します。
ansible -m ping dbserver1次の出力が表示されます。
[webservers]などのホストのグループの接続をテストするには、次のコマンドを実行します。
ansible -m ping webservers次の出力が表示されます。
ステップ6–Ansibleの高度なコマンド
AnsibleサーバーからSSH経由でリモートサーバー上で任意のコマンドを実行できます。
たとえば、すべてのAnsibleホストのディスク使用量を確認するには、次のコマンドを実行します。
ansible -m shell -a "df -h" allこのコマンドは、すべてのリモートホストで「df-h」コマンドを実行し、次の出力を提供します。
次のコマンドを使用して、dbserver1ホスト上のすべてのデータベースを一覧表示できます。
ansible -m shell -a "mysql -u root [email protected]'データベースを表示;'"dbserver1次の出力が表示されます。
結論
上記のチュートリアルでは、Ubuntu18.04サーバーにAnsibleをインストールする方法を学びました。また、Ansibleを使用して複数のサーバーを管理する方法も学びました。 Ansibleを使用してインフラストラクチャ全体を簡単に管理できるようになりました。Atlantic.NetのVPSホスティングで試してみてください!
Linux