GNU/Linux >> Linux の 問題 >  >> Cent OS

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

Ansibleは、クライアントノードにエージェントをインストールすることなく、構成管理、プロビジョニング、アプリケーション展開、オーケストレーション、およびその他の多くのITプロセスを自動化するために使用されるオープンソースのIT自動化ツールです。クライアントノードとの通信はSSHプロトコルに依存しています。 Ansibleは、puppet、chef、terraformなどの他の同様のツールと比較して、使いやすさとインストールを提供します。このチュートリアルでは、CentOS8LinuxにAnsibleをインストールして構成する方法を学習します。

CentOS8LinuxにAnsibleをインストール

ステップ1: EPEL をインストールして有効にする リポジトリ

[root@install-ansible ~]# dnf install epel-release -y

ステップ2: パッケージのリモートインデックスをローカルファイルキャッシュにダウンロードして、後続のdnf を高速化します。 コマンド。

[root@install-ansible ~]# dnf makecache
CentOS Linux 8 - AppStream 2.6 kB/s | 4.3 kB 00:01
CentOS Linux 8 - BaseOS 2.6 kB/s | 3.9 kB 00:01
CentOS Linux 8 - Extras 1.0 kB/s | 1.5 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 8.7 kB/s | 11 kB 00:01
Extra Packages for Enterprise Linux Modular 8 - x86_64 9.6 kB/s | 10 kB 00:01
Remi's Modular repository for Enterprise Linux 8 - x86_64 501 B/s | 833 B 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 802 B/s | 833 B 00:01
Metadata cache created.

ステップ3: Ansibleをインストールする

[root@install-ansible ~]# dnf install ansible -y
Last metadata expiration check: 0:02:17 ago on Tue 01 Mar 2022 10:28:48 AM IST.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Installing:
ansible noarch 2.9.27-1.el8 epel 17 M
Installing dependencies:
python3-bcrypt x86_64 3.1.6-2.el8.1 epel 44 k
python3-jmespath noarch 0.9.0-11.el8 appstream 45 k
python3-pyasn1 noarch 0.3.7-6.el8 appstream 126 k
python3-pynacl x86_64 1.3.0-5.el8 epel 100 k
sshpass x86_64 1.06-9.el8 epel 27 k
Installing weak dependencies:
python3-paramiko noarch 2.4.3-1.el8 epel 289 k

Transaction Summary
=============================================================================================================================================================
Install 7 Packages
Installed:
  ansible-2.9.27-1.el8.noarch          python3-bcrypt-3.1.6-2.el8.1.x86_64    python3-jmespath-0.9.0-11.el8.noarch    python3-paramiko-2.4.3-1.el8.noarch
  python3-pyasn1-0.3.7-6.el8.noarch    python3-pynacl-1.3.0-5.el8.x86_64      sshpass-1.06-9.el8.x86_64

Complete!

ステップ4: ansibleのインストールを確認する

[root@install-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, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]

CentOS8でAnsibleを構成する

このチュートリアルでは、以下のアーキテクチャを検討してください。同じものをn個のクライアントに拡張できます。

Ansibleサーバーからのクライアントの管理/管理

クライアントを管理するには、SSHをインストールして実行する必要があります。 SSHポートは開いていて、Ansibleサーバーからアクセスできる必要があります。

ステップ5: /etc/hostsを開きます ansible-server上のファイル

この記事では、/etc/hostsを使用します クライアントのIPアドレスのDNS名解決用のファイル。

[root@ansible-server ~]# vim /etc/hosts
クライアントのIPアドレスまたはDNS名

クライアントのIPアドレスまたはDNS名を使用して管理できます

AnsibleクライアントのIPアドレスとホスト名に以下のエントリを追加します

10.180.10.122 ansible-client

SSHパスワードなし認証のセットアップ

ステップ6: パスフレーズの入力を求められることなく、Ansibleサーバー(管理ノード)でSSHキーを生成します。

[centos@ansible-server ~]$ ssh-keygen -f id_rsa -t rsa -N ''
Generating public/private rsa key pair.
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:vqvgSILGrVxCDsLuORbJojxiYDEFEFlNQi5ZrHeqYhE centos@ansible-server
The key's randomart image is:
+---[RSA 3072]----+
|+B*o.            |
|.+.o.            |
|o.o              |
|oE. .            |
|++=o    S        |
|@*o    .         |
|OB+o.   .        |
|OX=o .   .       |
|*=+ . ..o.       |
+----[SHA256]-----+

ステップ7: SSHキーをAnsibleクライアントにコピーします

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

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'centos@ansible-client'"
and check to make sure that only the key(s) you wanted were added.
ansible-clientのcentosユーザーのパスワードプロンプト

Ansible-clientで初めてcentosユーザーのログインパスワードを入力します。 SSHキーがコピーされると、パスワードなしでログインできるようになります

ステップ8: パスワードなしの接続を確認する

[centos@ansible-server ~]$ ssh centos@ansible-client
Last login: Tue Mar 1 05:57:15 2022 from 10.180.6.115
[centos@ansible-client ~]$

ステップ9: centosのsudoアクセス ansible-clientのユーザー

必ず、centos ansible-clientのユーザーは、パスワードなしでsudoアクセスできます。これは、root を実行するのに役立ちます centosを使用したansible-clientのコマンド ユーザー。

# visudo

## Add the below content
centos ALL=(ALL) NOPASSWD:ALL

これで、ansible-clientをcentosを使用してansible-server(管理ノード)から管理する準備が整いました。 ansible-clientのユーザー。

Ansibleの使用方法

ステップ10: Ansibleインベントリを作成する

Ansibleは、管理するすべてのリモートクライアントの情報のリストをinventory というファイルに保持します。 ファイル。 Ansibleインベントリファイルは単純なプレーンテキストファイルであり、デフォルトのファイルの場所は/etc/ansible/hostsです。

Ansibleインベントリファイル

デフォルトの場所以外にAnsibleインベントリファイルを作成できます。

[centos@ansible-server ~]$ mkdir ~/ansible
[centos@ansible-server ~]$ cd ~/ansible
[centos@ansible-server ansible]$ vim hosts

すべてのansibleクライアントのエントリを追加します

ansible-client ansible_user=centos
ansible/hostsファイルのansible_userオプション

ansible_userオプションは、コマンドを実行するansible-client上のユーザーを定義するために使用されます。

Ansibleインベントリファイル-ホスト名とIPアドレスの組み合わせ

インベントリファイルにリモートクライアントのIPアドレスとDNS名を混在させることもできます

10.180.10.122 ansible_user=centos
インベントリファイルでリモートクライアントをグループ化する

使用状況に基づいて、リモートクライアントをインベントリファイルにグループ化することもできます。たとえば、Webサーバーとして4つのクライアントがあり、dbサーバーとして2つのクライアントがある場合。

[centos]
ansible-client ansible_user=centos

ステップ11: インベントリファイルからすべてのホストを一覧表示します

[centos@ansible-server ansible]$ ansible -i hosts --list-hosts all
  hosts (1):
    ansible-client

ステップ12: ホストがアクティブであることを確認します

[centos@ansible-server ansible]$ ansible -i hosts -m ping all
ansible-client | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}

ステップ13: リモートのansible-client(すべて/グループ名ベース)でコマンドを実行する

[centos@ansible-server ansible]$ ansible -i hosts -m shell -a "more /etc/redhat-release" ansible-client
ansible-client | CHANGED | rc=0 >>
CentOS Linux release 7.8.2003 (Core)

それでおしまい!次に、独自の方法でansibleを使用してリモートクライアントの管理を開始します。

Ansible Playbookは、人間の関与を制限するか、まったく行わずに複雑なITアクションを実行することで、サーバーをより簡単に管理するのに役立ちます。次の記事でAnsiblePlaybookについて説明します。


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

  2. Rocky Linux / Alma Linux /CentOS8にErlangをインストールする方法

  3. CentOS8LinuxにPHP8をインストールする方法

  1. CentOSLinuxでブートストラップを解除する方法

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

  3. CentOS7にLinuxカーネル5.0をインストールする方法

  1. RHEL 8 / CentOS8Linuxにredmineをインストールする方法

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

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