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

Ubuntu 20.04 LTS/21.04にAnsibleをインストールする方法

Ansibleは、無料のオープンソースIT自動化および構成ツールです。ほとんどすべてのLinuxディストリビューションで利用可能であり、LinuxおよびWindowsシステムの管理に使用できます。現在、AnsibleはAWS、仮想マシン、コンテナなどのEC2インスタンスの管理にも使用されています。管理対象ホストにエージェントは必要ありませんが、ssh接続のみが必要です。

この記事では、Ubuntu 20.04 LTS/21.04に最新バージョンのAnsibleをインストールする方法について説明します

Ansibleのシステム要件

  • 最小インストール数のUbuntu20.04LTS / 21.04
  • root権限を持つsudoユーザー
  • 2 CPU / vCPU
  • 2GB以上のRAM
  • 20GBハードドライブ
  • インターネット接続(ローカルに構成されたaptリポジトリサーバーがない場合)

以下は、ansibleデモンストレーションのための私のラボセットアップの詳細です。

  • Ansibleコントロールノード– control.example.com(192.168.1.112)
  • Ansible管理対象ノード– node1.example.com&node2.example.com
  • 特権を持つ制御ノードと管理対象ノードのsysopssudoユーザー。

注:ここで、node1はUbuntuシステムであり、node2はCentOSシステムであり、コントロールノードはansibleをインストールするシステムです。シスオペは各ホストですでに作成されていると思います。

パスワードの入力を求めずにすべてのコマンドを実行するようにsudoユーザー(sysops)を構成するには、各管理対象ホストで次のコマンドを実行します

echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops

Ansibleのインストール手順に飛び込みましょう

ステップ1)コントロールノードに更新を適用する

Ubuntu 20.04 LTS / 21.04システムにログインし、以下のaptコマンドを実行して更新を適用します。

$ sudo apt update
$ sudo apt updgrade -y

すべてのアップデートがインストールされたら、システムを1回再起動します。

$ sudo reboot

ステップ2)依存関係をインストールしてAnsibleリポジトリを構成する

次のaptコマンドを実行して、ansibleの依存関係をインストールします

$ sudo apt install -y software-properties-common

依存関係がインストールされたら、Ansible用にPPAリポジトリを構成し、実行します

$ sudo add-apt-repository --yes --update ppa:ansible/ansible

次に、aptコマンドの下で実行してリポジトリを更新します。

$ sudo apt update

ステップ3)最新バージョンのansibleをインストールする

これで、Ubuntu 20.04 LTS/21.04に最新バージョンのAnsibleをインストールする準備が整いました。次のコマンドを実行してください。

$ sudo apt install -y ansible

Ansibleが正常にインストールされたら、コマンドを実行してバージョンを確認します

$ ansible --version

上記の出力は、Ansibleバージョン2.9.6がインストールされていることを示しています。

ステップ4)SSHキーを設定し、管理対象ノード間で共有します

次に、コントロールノードからsysopsユーザーのSSHキーを生成し、管理対象ホスト間で共有しましょう。 ssh-keygenコマンドを実行します

$ ssh-keygen

入力を求めるプロンプトが表示されたらEnterキーを押します。出力は以下に表示されます

注:制御ノードの/ etc/hostsファイルに管理対象ホストエントリを追加します。これは、ローカルDNSサーバーが構成されていない場合にのみ必要です。

192.168.1.115   node1.example.com
192.168.1.120   node2.example.com

コントロールと管理対象ホスト間でsshキーを共有するには、ssh-copy-idコマンドの例を以下に示します

$ ssh-copy-id node1.example.com
$ ssh-copy-id node2.example.com

上記のコマンドの出力は次のようになります

ステップ5)ansiblecfgとインベントリファイルを作成する

プロジェクトごとに個別のansible.cfgファイルとインベントリファイルを用意することを常にお勧めします。デモンストレーションの目的で、プロジェクト名としてデモを使用しています。したがって、最初にmkdirコマンドを実行してプロジェクトフォルダを作成します。

$ mkdir demo

デフォルトのansble.cfgファイルを〜/demoフォルダーにコピーします

$ cp /etc/ansible/ansible.cfg ~/demo/

〜/ demo / ansible.cfgファイルを編集し、次のパラメーターを設定します

$ vi ~/demo/ansible.cfg

デフォルトのセクションの下

inventory      = /home/sysops/demo/inventory
remote_user = sysops
host_key_checking = False

Priligence_escalationセクションの下

become=True
become_method=sudo
become_user=root
become_ask_pass=False

ファイルを保存して閉じます。それでは、〜/ demo/ansible.cfgファイルで定義したインベントリファイルを作成しましょう。

$ vi ~/demo/inventory
[dev]
node1.example.com

[prod]
node2.example.com

ファイルを保存して終了します

最後に、ANSIBLE_CONFIG変数を宣言して、デモプロジェクトのansible.cfgファイルを使用するようにansibleに指示し、次のコマンドを実行します。

$ export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg
$ echo "export ANSIBLE_CONFIG=/home/sysops/demo/ansible.cfg" >> ~/.profile

デモフォルダからansible–versionコマンドを実行して、ansible構成を確認します

$ cd demo/
$ ansible --version

すばらしい、Ansibleはプロジェクトのansible構成ファイルを読み取っています。 ansibleアドホックコマンドを使用して、管理対象ノードの接続を確認しましょう。

$ ansible all -m ping

注:デモフォルダからansibleコマンドを実行してください。

コマンドの出力は次のようになります:

この出力は、制御ノードから管理対象ホストへの接続が確立されていることを確認します。

ステップ6)管理対象ホストにパッケージをインストールするためのAnsibleプレイブックを作成する

Ansibleのインストールと構成を確認するために、demoフォルダーの下にpackages.yamlという名前のサンプルプレイブックを作成しましょう。

$ vi packages.yaml
---
- name: Playbook to Install Packages
  hosts:
    - dev
    - prod
  tasks:
  - name: Install php and mariadb
    package:
      name:
        - php
        - mariadb-server
      state: present

ファイルを保存して閉じます

次に、ansible-playbookコマンドを使用してプレイブックを実行します。

$ ansible-playbook packages.yaml

出力:

上記の出力は、プレイブックが正常に実行されたことを確認します。結果を確認するには、次のアドホックコマンドを実行します

$ ansible dev -m shell -a 'dpkg -l | grep -E "php|mariadb"'
$ ansible prod -m shell -a 'rpm -qa | grep -E "php|mariadb"'

これで記事は終わりです。この記事が有益であると感じた場合は、遠慮なく共有してください。ご不明な点がございましたら、下のコメントセクションにご記入ください。

また読むAnsiblePlaybookでハンドラーを使用する方法


Ubuntu
  1. Ubuntu 22.04 /20.04LTSにDockerをインストールする方法

  2. Ubuntu18.04LTSにAnsibleをインストールして構成する方法

  3. Ubuntu18.04LTSにAnsibleをインストールする方法

  1. Ubuntu20.04LTSにPlayOnLinuxをインストールする方法

  2. Ubuntu20.04LTSにMariaDBをインストールする方法

  3. Ubuntu20.04LTSにAnsibleAWXをインストールする方法

  1. Ubuntu 20.04 LTS/21.04にMinikubeをインストールする方法

  2. Ubuntu18.04LTSにSpotifyをインストールする方法

  3. Ubuntu18.04LTSにPrometheusをインストールする方法