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

Redhat EnterpriseLinux8にAnsibleをインストールして設定する方法

このチュートリアルでは、Redhat Enterprise Linux8でのA​​nsibleのインストールと構成を段階的に説明します。
Ansibleは、主要なオープンソース構成管理システムです。管理者や運用チームは、エージェントをインストールしなくても、中央のマシンから何千ものサーバーを簡単に制御できます。

このチュートリアルでは、次のことを学びます。

  • Ansibleの概要
  • Pythonのインストールと構成
  • パスワードなしのSSHを設定する
  • Ansibleをインストールする
  • Ansibleのテストと管理

<中央>

Ansibleアーキテクチャ。

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Red Hat Enterprise Linux 8
Python3、Ansible
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
–指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

Ansibleの概要

Ansibleは、クラウドプロビジョニング、構成管理、アプリケーションデプロイメント、サービス内オーケストレーション、およびその他の多くのITニーズを自動化する非常にシンプルなIT自動化エンジンです。

Ansibleは、初日から多層展開用に設計されており、一度に1つのシステムを管理するだけでなく、すべてのシステムがどのように相互に関連しているかを説明することで、ITインフラストラクチャをモデル化します。

エージェントや追加のカスタムセキュリティインフラストラクチャを使用しないため、展開が簡単です。最も重要なのは、非常にシンプルな言語(YAML、Ansible Playbooksの形式)を使用して、自動化ジョブを次のような方法で記述できるようにすることです。分かりやすい英語。 Ansibleは、ノードに接続し、「Ansibleモジュール」と呼ばれる小さなプログラムをノードにプッシュすることで機能します。
これらのプログラムは、システムの望ましい状態のリソースモデルとして作成されています。次に、Ansibleはこれらのモジュールを(デフォルトではSSH経由で)実行し、終了時に削除します。

モジュールのライブラリは任意のマシンに常駐でき、サーバー、デーモン、またはデータベースは必要ありません。通常、お気に入りのターミナルプログラム、テキストエディタ、およびおそらくバージョン管理システムを使用して、コンテンツへの変更を追跡します。

Pythonのインストールと構成

RHEL8のPythonのデフォルトバージョンはPython3.6です。ただし、Python2はRHEL8でも引き続き使用できます。何らかの理由でRedHat Enterprise Linux8のインストールにPython3.6がない場合は、手動でインストールする必要があります。

Python 3.6は、端末で以下のコマンドを実行することにより、RHEL8にインストールできます。 Pythonは、Ansibleサーバーとそれが接続するすべてのホスト/クライアントの両方にインストールする必要があります。

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Python 3を使用するには、python3と入力するだけです。 ターミナルで。

Python 3を使用する場合、コマンドはPython 2の場合はpython3とpython2であることに注意してください。システム全体で使用できないpythonを参照するようにアプリケーションが構成されている場合はどうなりますか?以下のbashエラーが発生します。

# python
-bash: python: command not found

代替メカニズムを使用して、バージョン管理されていないpythonコマンドをシステム全体で有効にし、特定のバージョンに設定できます。 Python 3をデフォルトとして設定するには、次のコマンドを実行します。

# alternatives --set python /usr/bin/python3

python -Vを実行すると、構成されているデフォルトのPythonバージョンが表示されます。

#python -V
Python 3.6.6

または、Pythonを起動してコンソールを作成します:

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

パスワードなしのSSHを設定

ユーザーをansibleで作成します すべてのホストで:

# useradd ansible ;  echo "" | passwd --stdin ansible

sudoersファイル/etc/sudoersに必要なエントリを作成します パスワードなしのsudoアクセス用のansibleユーザーの場合:

ansible ALL=(ALL) NOPASSWD: ALL

次に、AnsibleサーバーでSSHキーを生成します:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Ansibleユーザーとしてリモートサーバーにコピーします:

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? 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
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Ansibleをインストール

Pythonをインストールしたら、Ansibleのインストールに使用するPythonパッケージマネージャーであるPipのインストールに進みます。

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

pip3を取得したら インストールされている場合は、それを使用して、AnsibleをansibleユーザーとしてAnsibleManagementシステムにインストールします。

$ pip3 install ansible --user

次のコマンドを使用して、Ansibleがインストールされていることを確認できます。

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

テストと管理

Ansibleインベントリファイルを作成します。デフォルトは/etc/ansible/hostsです。 ただし、ansibleユーザーのホームディレクトリにあるhostsファイルをコピーできます。以下のようなリモートホストのグループをhostsファイルに作成することもできます。


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

pingモジュールを使用してAnsibleをテストできます。実行が成功すると、以下の出力が表示されます。

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

-iオプションは、インベントリファイルへのパスを提供するために使用されます。 「アプリ」グループ名についても同じ出力が得られるはずです。

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

結論

Ansibleのシンプルさと他のツールの複雑さを軽減する機能により、Ansibleはお客様の環境にとって信頼できる申請者になっています。その最大の関心事はセキュリティと信頼性です。転送にはOpenSSHを使用し、プログラムに精通していない人でも監査できるように言語が設計されています。 Ansibleは、少数のインスタンスを使用する小規模なセットアップとエンタープライズ環境の両方を管理するのに十分適しています。


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

  2. RockyLinux8にTensorFlowをインストールして設定する方法

  3. Linux に EMC PowerPath をインストールして構成する方法

  1. LinuxでのAnsibleのインストールと構成

  2. Rocky Linux /CentOS8にAnsibleをインストールして構成する方法

  3. UbuntuLinuxにMemcachedをインストールして構成する方法

  1. LinuxシステムにRedisをインストールして設定する方法

  2. Linux に DNS サーバーをインストールして構成する方法

  3. Linux ディストリビューションに ZSH をインストールして構成する方法