GNU/Linux >> Linux の 問題 >  >> Linux

OracleLinux8にAnsibleをインストールする方法

Ansibleは、システム管理者が複数のシステムを一度にインストール、構成、プロビジョニングするために使用する無料のオープンソース自動化プラットフォームです。現在、IT環境は非常に複雑であり、多くの場合、非常に迅速に拡張する必要があります。自動化により、システム管理者と開発者の仕事が容易になり、組織に付加価値をもたらす他のタスクに注意を向けることができます。 Ansibleはセットアップと使用が非常に簡単です。 Ansibleを使用するのにコーディングスキルは必要ありません。

この投稿では、OracleLinux8にAnsibleをインストールする方法を紹介します。

前提条件

  • Atlantic.NetCloudPlatformでOracleLinux8を実行しているサーバー。これがマネージャーノードになります
  • Atlantic.NetCloudPlatformでOracleLinux8を実行している2番目のサーバー。これがワーカーノードになります
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてOracleLinux8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2–SSHキーベースの認証を設定する

開始する前に、Ansibleコントロールノードとマネージャーノードの間にSSHパスワードなしのログインを設定する必要があります。 SSHキーベースの認証を設定することでそれを行うことができます。

まず、次のコマンドを使用して秘密鍵と公開鍵を生成します。

ssh-keygen -t rsa

次の出力が表示されます。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0qOchzAC0Asm8WPlduL7ZxN6C5NUelScBo2nYVuqPMs [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|oo  .   .=..     |
|+o.o    +.B      |
|+.+.+ ..oO       |
| o.+ o =+        |
|  . +.+.S        |
|   . *+B..       |
|    ..O+..       |
|     .E+=        |
|      .+.o       |
+----[SHA256]-----+

次に、次のコマンドを使用して、生成された公開鍵をAnsible管理対象ノードにコピーします。

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

次の出力が表示されます。

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:4K4sZbu1hLHzDGlwmWAJng6nDbxDqp6hnv65KDaOAn0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]<server-ip>'"
and check to make sure that only the key(s) you wanted were added.

次に、次のコマンドを実行して、SSHパスワードなしのログインをテストします。

ssh [email protected]

ステップ3– OracleLinux8にAnsibleをインストールする

次に、AnsibleコントロールノードにAnsibleパッケージをインストールする必要があります。デフォルトでは、AnsibleパッケージはOracle Linux 8のデフォルトのリポジトリでは使用できないため、EPELリポジトリからインストールする必要があります。

まず、次のコマンドを使用してEPELリポジトリをインストールします。

dnf install -y epel-release

次に、次のコマンドを使用してAnsibleパッケージをインストールします。

dnf install ansible -y

Ansibleをインストールしたら、次のコマンドでAnsibleのバージョンを確認します。

ansible --version

次の出力が表示されます。

ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Nov 10 2021, 06:50:23) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3.0.2)]

ステップ4–Ansibleホストを構成する

次に、Ansibleホスト構成ファイルを編集し、管理するリモートLinuxサーバーを定義する必要があります。

次のコマンドで編集できます:

nano /etc/ansible/hosts

次の行を追加します:

[web]
server1 ansible_ssh_host=<manager-node-ip> ansible_ssh_port=22 ansible_ssh_user=root

[database]
dbserver1 ansible_ssh_host=<worker-node-ip> ansible_ssh_port=22 ansible_ssh_user=root

終了したら、ファイルを保存して閉じます。

次に、Ansible構成ファイルを編集し、非推奨の警告とホストキーのチェックを無効にします。

nano /etc/ansible/ansible.cfg

[デフォルト]の下に次の行を追加します:

deprecation_warnings=False
host_key_checking = False

終了したら、ファイルを保存して閉じます。

ステップ5–Ansibleの使用方法

この時点で、Ansibleがインストールおよび構成されています。次に、Ansibleアドホックコマンドを使用してAnsibleの機能を確認する必要があります。

まず、次のコマンドを使用して、すべての管理対象ノードの接続を確認します。

ansible -m ping all

すべてが正常であれば、次の出力が表示されます。

dbserver1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
server1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

データベースサーバーの接続のみを確認する場合は、次のコマンドを実行します。

ansible -m ping database

次の出力が得られます:

dbserver1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Webサーバーノードの空きメモリを確認するには、次のコマンドを実行します。

ansible -m shell -a "free -m" web

次の出力が得られます:

server1 | CHANGED | rc=0 >>
              total        used        free      shared  buff/cache   available
Mem:           1817         621         210          21         985        1006
Swap:             0           0           0

データベースサーバーノードでMySQLのバージョンを確認するには、次のコマンドを実行します。

ansible -m shell -a "mysqladmin --version" database

次の出力が表示されます。

dbserver1 | CHANGED | rc=0 >>
mysqladmin  Ver 8.0.26 for Linux on x86_64 (Source distribution)

ステップ6–管理対象ノードにパッケージをインストールするためのAnsiblePlaybookを作成する

Ansibleを使用すると、管理対象ノードで実行するすべてのタスクを定義するためのプレイブックを作成できます。まず、プレイブックを保存するディレクトリを作成します。

mkdir project

次に、作成したディレクトリに移動し、次のコマンドを使用してYAMLファイルを作成します。

cd project
nano app.yaml

次の構成を追加します:

- name: Install Packages
  hosts:
    - web
    - database
  tasks:
  - name: Install php and nginx
    package:
      name:
        - php
        - httpd
      state: present

ファイルを保存して閉じてから、次のコマンドを使用してプレイブックを実行します。

ansible-playbook app.yaml

Ansibleプレイブックが正常に実行されると、次の出力が得られます。

PLAY [Install Packages] **********************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************
ok: [server1]
ok: [dbserver1]

TASK [Install php and apache] ****************************************************************************************************************
ok: [server1]
changed: [dbserver1]

PLAY RECAP ***********************************************************************************************************************************
dbserver1                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server1                    : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

これで、次のコマンドを使用して、WebサーバーノードでPHPのバージョンを確認できます。

ansible -m shell -a "php -v" web

次の出力が得られます:

server1 | CHANGED | rc=0 >>
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

結論

このガイドでは、Oracle Linux 8にAnsibleをインストールする方法について説明しました。また、Ansibleアドホックコマンドとプレイブックを使用して管理対象ノードをプロビジョニングする方法についても説明しました。 Ansibleを使用して、ITインフラストラクチャ全体を簡単にプロビジョニングおよび管理できるようになりました。 Atlantic.NetのVPSホスティングでお試しください!


Linux
  1. LinuxにPythonをインストールする方法

  2. LinuxにJavaをインストールする方法

  3. LinuxにAnsibleをインストールしてテストする方法

  1. LinuxにOracleJavaJDK17をインストールする方法

  2. OracleLinux8にApacheCassandraをインストールする方法

  3. OracleLinux8にApacheMavenをインストールする方法

  1. ArchLinuxにOracleJava10をインストールする方法

  2. CentOS8LinuxにAnsibleをインストールする方法

  3. LinuxMint20にAnsibleをインストールする方法