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

Linuxシステム管理者向けAnsibleのクイックスタートガイド

この記事では、Ansibleをインストールするための前提条件、Satelliteサーバーを使用したAnsibleのインストール、自動化のためのAnsibleのセットアップ、プレイブック、インベントリファイルの紹介、およびAnsibleのユースケースについて説明します。まだ読んでいない場合は、最初の記事「Linuxシステム管理者向けのAnsibleの謎を解く」を確認してください。

Ansibleをインストールするための前提条件

ご使用の環境でAnsibleを使用するには、管理ノードを設定する必要があります (コントロールノードとも呼ばれます )Ansibleをインストールする場所。 Ansibleは、Python 2(バージョン2.7)またはPython 3(バージョン3.5以降)を搭載した任意のマシンにインストールできます。 RHEL 7では、デフォルトでPython 2.7がインストールされており、RHEL 8では、デフォルトでPython3.6がインストールされています。すべてのAnsibleモジュールを使用するには、管理対象ノードにもPythonをインストールする必要があります。デフォルトでは、AnsibleはSSHを使用して管理対象ノードと通信します。管理対象ノードは、通信にSFTPまたはSCPを使用することもできます。これは、Ansible構成ファイル(ansible.cfg)で変更できます。 。

RHELSatelliteを使用してRHEL8システムにAnsibleをインストールする場合は、SatelliteGUIからRHEL8 x86_64(RPM)用のRed Hat Ansible Engine 2.9のリポジトリーを追加し、CDNからSatelliteにリポジトリーを同期してください。コントロールノードで、次のコマンドを使用して、Satelliteサーバーに登録し、Satelliteツールを有効にして、Ansibleリポジトリを有効にする必要があります。

# subscription-manager repos --enable satellite-tools-6.6-for-rhel-8-x86_64-rpms
Repository' satellite-tools-6.6-for-rhel-8-x86_64-rpms' is enabled for this system.

# subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
Repository' ansible-2.9-for-rhel-8-x86_64-rpms' is enabled for this system.

RHELへのAnsibleのインストール

サテライトサーバーに登録した後にRHEL8コントロールノードにAnsibleをインストールするには、コマンドyum install ansibleを実行します。 。このコマンドは6つのパッケージをインストールします:

  1. AnsibleリポジトリからAnsibleをインストールします:
    1. Ansible
  2. 依存関係をインストールします:
    1. sshpass
    2. Python3-markupsafe
    3. Python3-jinja2
    4. Python3-babel
  3. 弱い依存関係をインストールします:
    1. Python3-jmespath

インストール後、ansible --versionを実行します インストールされているAnsibleのバージョンを確認するコマンド。

# ansible --version

ansible 2.9.6

 config file = /etc/ansible/ansible.cfg

 configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

 ansible python module location = /usr/local/lib/python3.6/site-packages/ansible-2.9.6-py3.6.egg/ansible

 executable location = /usr/local/bin/ansible

 python version = 3.6.8 (default, Oct 11 2019, 15:04:54) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]

インストール後、ansible.cfgのパラメーターを変更することで、デフォルトのAnsible設定を変更できます。 ファイル。

[読むこともお楽しみいただけます:Ansibleを使用して仕事でスリルを更新する]

自動化のためのAnsibleのセットアップ

Ansibleがインストールされたので、Ansibleがシームレスに機能するように、制御ノードから管理対象ノードへのSSHキーベースの認証(非対称暗号化を使用)を構成する必要があります。制御ノードで鍵ペアを生成し、公開鍵を管理対象ノードに転送する必要があります。コマンドssh-keygenを使用します キーペアを生成します。キーは、.ssh内のホームディレクトリに保存されます フォルダ。デフォルトのキーの名前はid_rsa.pubです。 (公開鍵)およびid_rsa (秘密鍵)。管理対象ノードでSSHキーベースの認証を有効にするには、制御ノードで次のコマンドを実行します。

# ssh-copy-id <target user>@<IP address/Hostname of the managed node>

これには、管理対象ノードのターゲットユーザーのワンタイムパスワードが必要になることに注意してください。コマンドssh-copy-id コントロールノードの公開鍵をauthorized_keysにコピーします 管理対象ノード上のファイル。

構成が完了すると、リモートノードをインベントリファイルに追加し、次のAnsibleアドホックコマンドを使用してpingテストを実行できます。

# ansible all -m ping -i <inventory-file>

プレイブックの詳細

プレイブックは、Ansible関数が記述されているファイルです。プレイブックはYAML形式で書かれています。 YAMLはYetAnotherMarkupLanguageの略です。プレイブックはAnsibleのコア機能の1つであり、Ansibleに何を実行するかを指示します。これらは、一連のタスクを含むAnsibleのやることリストのようなものです。プレイブックは、Ansibleのすべてのユースケースの構成要素です。アクションごとに独立したモジュラーAnsibleプレイブックを作成できます。モジュールimport_playbookを使用して、これらのモジュラープレイブックを単一のマスタープレイブックに組み込むことができます。 。これにより、プレイブックの再利用性が保証されます。プレイブックで変数を使用して、Ansibleインベントリ、インクルードファイル、および実行時にこれらの変数を渡すことができます。 Ansibleプレイブックの主な機能には次のものがあります。

  • なるに基づいてさまざまなユーザーとしてタスクを実行する機能 メソッド
  • インベントリ内のホストに基づいて、各タスクを実行する場所を制御します
  • コードで条件とループを指定します

例:

在庫の詳細

在庫 Ansibleで管理できるノードのリストです。個々の管理対象ホストを指定するか、インベントリファイルにホストのグループを作成できます。管理対象ホストごとに、その特定のホストでタスクを実行するときにプレイブックで使用できる変数を割り当てることができます。デフォルトのインベントリファイルは/etc/ansible/hostsです。 、ただし、独自のインベントリファイルを作成し、プレイブックの実行中に-iを使用して呼び出すことをお勧めします。 コマンドオプション。インベントリファイルは、INIまたはYAML形式にすることができます。静的インベントリファイルまたはホストの動的リストのいずれかを維持できます。

例:

# cat hosts-b2b

[webservers]
b2bwebprod1 urlpath=https://b2bprod.abc.xyz
b2bwebprod2
b2bwebprod3

[appservers]
b2bappprod1
b2bappprod2
b2bappprod3
b2bappprod4
b2bappprod5

[dbservers]
b2bmasterdb
b2bslavedb

Ansibleのユースケース

システム監視のAnsibleのユースケースを見てみましょう。次のようなさまざまなシステム管理者関連の監視タスク用のプレイブックを作成できます。

  • ファイルシステムの使用状況を監視し、ディスク容量が90%以上使用されている場合はアラートをメールで送信します
  • アプリケーションとポートの可用性
  • データベースに接続してクエリを実行することによるデータベースの可用性
  • uriを使用したURLの可用性 リターンコードが200を超える場合は、モジュールおよび電子メールアラート。 uriで再試行および遅延機能を使用することもできます。 二重に確認するモジュール
  • サービスの可用性、サービスがダウンしているかどうかを報告し、再起動を試みます
  • コンポーネントのバージョンを確認して、最新の在庫を維持します
  • システムの稼働時間を監視し、システムにアクセスできない場合はメールアラートを送信します

[Ansibleについてもっと知りたいですか? RedHatから無料の技術概要コースを受講してください。 Ansible Essentials:自動化の技術概要のシンプルさ。 ]

まとめ

この記事では、Ansibleのインストール、Ansibleのセットアップ、プレイブックの作成、インベントリの管理の概要を例を挙げて説明します。 Ansibleを使用した自動化に関するその他の記事をお楽しみに。


Linux
  1. 初心者向けのLinuxターミナルガイド

  2. Linuxシステム自動化のための10のAnsibleモジュール

  3. Linuxとは何ですか?非技術ユーザー向けガイド

  1. Linuxシステム管理者向けのAnsibleの謎を解き明かす

  2. Linuxシステム管理者向けの5つの高度なrsyncのヒント

  3. システム管理者向けの30のLinuxプロセス演習

  1. Linuxでのリモート接続のためのSSHの初心者向けガイド

  2. LinuxでAsciiDocを使用するための完全ガイド

  3. SysAdmins用の80のLinux監視ツール