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

RHCE Ansibleシリーズ#1:Ansibleに挨拶する

このAnsibleシリーズでは、Ansibleを使用してITインフラストラクチャの運用を管理および自動化するために必要なすべてのスキルを学習します。

また、RHCE(Red Hat認定エンジニア)EX294試験のすべての目標がこのシリーズでカバーされます。これは、シリーズに従えば、EX294試験に合格し、RedHat認定エンジニアになる準備が整っていることを意味します。

Ansibleとは何ですか?

Ansibleは、オープンソースの構成管理、ソフトウェアプロビジョニング、およびアプリケーション展開ツールであり、アプリケーションの展開とITインフラストラクチャの運用を非常に簡単に自動化できます。

Ansibleは非常に軽量で構成が簡単で、他の自動化ツールとは異なり、エージェントを実行する必要がないため(エージェントレス)、リソースを大量に消費しません。たとえば、エージェントベースで構成が少し複雑なPuppetです。

これが、Ansibleの人気が日々高まっており、多くの企業にとってgoto自動化ツールになっている理由です。

サイエンスフィクションでは、Ansibleという言葉は、長距離を瞬時に通信できるようにする架空のデバイスを指します。つまり、超光速通信デバイスです。これで、Ansibleがその名前のインスピレーションを得た場所がわかりました。
​​遊び場の作成

このシリーズを最大限に活用し、苦労せずにフォローするには、私が使用しているのと同じセットアップを使用することをお勧めします。

コントロールノードとして機能するRHEL8(Red Hat Enterprise Linux)仮想マシンを1つ作成しました。コントロールノードは、その名前が示すように、基本的に他のリモートホスト(管理対象ノード)を制御するために使用されるサーバーです。

管理対象ノード用に、node1、node2、node3の3つのCentOS8仮想マシンを作成しました。最後の管理対象ノード用にUbuntu18.04も作成しました。

セットアップ全体をまとめた図を次に示します。

コンピューターがクラッシュせずにこれらすべての仮想マシンを作成するのに十分なリソースがコンピューターにありません。そのため、下のスクリーンショットに示されているように、すべての仮想マシンでMicrosoftAzureを使用しました。

AWS、Linode、Digital Ocean、UpCloudなどの他のクラウドサーバープロバイダーを使用できます。それらのほとんどは、新規ユーザーに50ドルまたは100ドル相当の無料クレジットを提供します。これらのサービスのいずれかにサインアップし、無料のクレジットを使用して、このAnsibleシリーズをフォローするためのセットアップを準備できます。

Ansibleのインストール

AnsibleはSSHとPythonに依存してすべての自動化の魔法を実行するため、Ansibleをコントロールノードにインストールするだけで、OpenSSHとPythonがコントロールノードと管理対象ノードの両方にインストールされていることを確認できます。

簡単に言うと、管理対象ノードにAnsibleをインストールする必要はありません!

次に、さまざまなシステムにAnsibleをインストールする方法を紹介します。

RHELシステムへのAnsibleのインストール

このシリーズは主にすべてのRHCE試験の目的を対象としているため、まずRHEL8システムにAnsibleをインストールする方法を紹介します。

コントロールノードにログインし、rootユーザーに切り替えます:

[[email protected] ~]$ sudo su -
Last login: Tue Oct 20 01:05:00 UTC 2020 on pts/0

Linuxのバージョン情報を確認すると、RHEL 8.2を実行していて、これを制御ノードとして使用していることがわかります。

[[email protected] ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)

AnsibleをRHEL8システムにインストールするには、最初にシステムをサブスクリプションマネージャーに登録する必要があります。 コマンド:

[[email protected] ~]# subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username:xxxxx
Password: xxxxx
The system has been registered with ID: 1d8ace59-c140-4f8c-b4bb-b4cd0f4fb811
The registered system name is: control

ご覧のとおり、ユーザー名とパスワードの入力を求められます。RedHatアカウントをお持ちでない場合は、アカウントを作成して無料トライアルを取得できます。

次に、次のコマンドを使用して新しいサブスクリプションを添付します。

[[email protected] ~]# subscription-manager attach --auto
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status: Subscribed

Product Name: Red Hat Enterprise Linux for x86_64 - Extended Update Support
Status: Subscribed

1つのコマンドでサブスクリプションを登録して添付できることに注意してください:

subscription-manager register --username=<USER_NAME> --password=<PASSWORD> --auto-attach

これで、すべてのRHEL8リポジトリにアクセスできるようになりました。次のコマンドを実行すると、使用可能なすべてのAnsibleリポジトリを一覧表示できます。

[[email protected] ~]# yum repolist all | grep ansible
ansible-2-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2.8-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-debug-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible E disabled
ansible-2.9-for-rhel-8-x86_64-source-rpms Red Hat Ansible E disabled

次に、最新のAnsibleバージョンリポジトリを見つけて有効にします。これを書いている時点では、 ansible-2.9 は最新バージョンなので、 ansible-2.9-for-rhel-8-x86_64-rpmsを有効にします。 yum_config_managerを使用 次のようにコマンドを実行します:

[[email protected] ~]# yum-config-manager --enable ansible-2.9-for-rhel-8-x86_64-rpms
Updating Subscription Management repositories.

これで、システムで有効になっているすべてのリポジトリを一覧表示することで、Ansibleリポジトリが実際に有効になっていることを確認できます。

[[email protected] ~]# yum repolist enabled
Updating Subscription Management repositories.
repo id                                                         repo name
ansible-2.9-for-rhel-8-x86_64-rpms Red Hat Ansible Engine 2.9 for RHEL 8 x86_64 (RPMs)
microsoft-azure-rhel8-eus Microsoft Azure RPMs for RHEL8 Extended Update Support
rhel-8-for-x86_64-appstream-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream - Extended Update Support from RHUI (RPMs)
rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-eus-rhui-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Extended Update Support from RHUI (RPMs)
rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)

この準備作業はすべて行われます。これで、ついにAnsibleをインストールできるようになりました:

[[email protected] ~]# yum install -y ansible

インストールが完了した後。次のコマンドを実行して、Ansibleが実際にインストールされていることを確認できます:

[[email protected] ~]# ansible --version
ansible 2.9.14
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, Dec  5 2019, 15:45:45) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]

素晴らしい!これで、RHEL 8にAnsibleが正常にインストールされました。これは、時間のかかるプロセスだと思われるかもしれません。

明るい面として、試験ではインターネットにアクセスできません。つまり、制御システムには必要なすべてのリポジトリが備わっているため、サブスクリプションマネージャーの使用について心配する必要はありません。

ただし、驚かれるよりも準備しておく方がよいでしょう。常にこれを覚えておいてください。

CentOSへのAnsibleのインストール

CentOSでは、AnsibleはEPEL(Enterprise Linux用の追加パッケージ)リポジトリーによって提供されます。

epel-release をインストールすると、EPELリポジトリをインストールして有効にできます。 次のようにパッケージ化します:

[[email protected] ~]# yum install -y epel-release

これで、ansibleをインストールできます:

[[email protected] ~]# yum install -y ansible

ここで管理対象ノードの1つ(node1)にAnsibleをインストールしたのは、学習目的のみであることに注意してください。制御ノードにAnsibleをインストールするだけです。

UbuntuへのAnsibleのインストール

Ubuntuでは、システムで目的のAnsibleバージョンリポジトリが有効になっていることを確認する必要があります。

次のコマンドを使用して、ansible-2.9ppaリポジトリを追加して有効にすることができます。

[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible-2.9

最後に、UbuntuにAnsibleをインストールできます:

[email protected]:~# apt-get -y install ansible

これで、このRHCEAnsible準備シリーズの最初のチュートリアルは終了です。

Ansibleを構成する方法を学び、いくつかの非常に優れたAd-Hoc Ansibleコマンドを実行できるようになるので、次のチュートリアルにご期待ください。


Linux
  1. RHCE Ansibleシリーズ#8:AnsibleVaultを使用したコンテンツの暗号化

  2. RHCE Ansibleシリーズ#7:Jinja2テンプレート

  3. RHCE Ansibleシリーズ#6:Ansibleでの意思決定

  1. RHCE Ansibleシリーズ#5:Ansibleループ

  2. RHCE Ansibleシリーズ#4:Ansible変数、ファクト、レジスタ

  3. RHCE Ansibleシリーズ#11:Ansibleを使用したシステムの管理

  1. Ansibleプレイブックの脱構築

  2. RHCE Ansibleシリーズ#10:RHELシステムの役割

  3. RHCE Ansibleシリーズ#9:Ansibleの役割