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

Ansible Playbook:Playbookを作成および構成する方法

はじめに

Ansibleは、単一の制御ノードを使用して多数のリモートサーバーを管理および監視できるInfrastructureasCodeツールです。

Ansibleを使用すると、プレイブックを使用してリモートサーバーを管理できます。これらのプレイブックは、命令をリモートサーバーに中継し、事前定義されたタスクを実行できるようにします。

このチュートリアルでは、Ansibleプレイブックとは何か、それらがどのように機能するか、およびそれらを作成および実行する方法について説明します。

前提条件

  • Linuxシステム(Ubuntu 20.04を使用しています)
  • コマンドライン/ターミナルウィンドウへのアクセス
  • Ansibleのインストールと構成

Ansible Playbookとは何ですか?

Ansibleプレイブックは、Ansibleネットワーク内のリモートコンピューターによって自動的に実行されるジョブの手順のリストです。

Ansibleプレイブックは演劇で構成されています。演劇は、演劇が実行されると完了する、組織化された一連のタスクです。 1つのプレイブックに複数のプレイを追加できます。

Playsはモジュールを使用して、タスクを完了するために行う必要のある変更を定義します。各モジュールは、特定のカテゴリのジョブのフレームワークを提供し、引数を使用してカスタマイズできます。 および変数

Ansible Playbookは.yamlファイルとして保存されるため、柔軟で使いやすくなっています。

プレイブックは主に次の目的で使用されます:

  • 構成の宣言。
  • 手動で行うには時間がかかりすぎる特定の反復可能なタスクを自動化する。
  • タスクを同期的または非同期的に起動します。

AnsiblePlaybook変数

Ansible Playbookは変数を使用して、柔軟性と使いやすさを提供します。変数は組み込みにすることができます (システム情報など)またはユーザー定義

Ansibleプレイブックでは、変数は varsを使用して定義されます キーワード:

上記の例では、greetingを定義しています。 Hello World!の値が割り当てられた変数

値にアクセスするには、変数名をgreetingに入力します 二重中括弧内:

実行されると、プレイブックはメッセージ Hello World!を出力します。

単一の値を持つ変数の他に、Ansible変数には他にもいくつかの種類があります。 配列での変数の使用 、次の構文で1つの変数に複数の値を割り当てます。

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

{{ array_name[value number] }}を使用して特定の値にアクセスします 、例:

辞書付きの変数 複数の値の配列を1つの変数に結合します:

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

最後に、特別な変数 Ansibleによって事前定義されており、ユーザーが設定することはできません。次のコマンドを使用して、特別な変数のリストを取得します。

ansible -m setup hostname

Ansible Playbookの書き方?

システムで使用可能なテキストエディタを使用して、Ansibleプレイブックを作成します。たとえば、Nanoでプレイブックを作成します:

sudo nano /path/to/playbook/directory/playbook_name.yaml

Ansibleプレイブックは基本的なYAML構文ルールに従います。

プレイブックは3つのnダッシュで始まります( --- )の後に、プレイブック名、プレイブックを実行するリモートホストグループの名前、およびbecomeなどの追加パラメーターが続きます。 (管理者としてプレイブックを実行します。)

次のセクションには、すべてのユーザー定義変数が含まれています。 varsで始まります 前のセクションと同じインデントレベルでタグを付け、その後に次のインデントで変数のリストを続けます。

最後に、タスクリストはtasksで始まります タグ、タスクのタイプと使用されるパラメーターに応じたインデントレベル。

YAML構文では、3つのピリオド()を使用できます )プレイブックを終了します。ほとんどのプレイブックはこのように終了しますが、プレイブックが正しく機能する必要はありません。

AnsiblePlaybook構文

Ansibleプレイブックを作成するときに覚えておくべきYAML構文のいくつかの重要な要素:

  • リストを作成するときは、ダッシュの間にスペースを使用してください( - )とリストエントリ。
  • key: valueを使用する場合 フォームの場合、コロンの後にスペースを続ける必要があります。
  • ブール値は両方のyesを使用できます およびno 、および true およびfalse
  • スペースの後に#を使用します コメントを示すため。

AnsiblePlaybookの例

この例では、Ansibleインストールフォルダーにプレイブックを作成します:

sudo nano /etc/ansible/example_playbook.yaml

このプレイブックには、次の要素が含まれています。

  • --- :プレイブックの開始を通知します。
  • name :Ansibleプレイブックの名前を定義します。
  • hosts :どのホストがプレイブックを実行するかを定義します。上記の例では、プレイブックはインベントリファイルに含まれるすべてのホストで実行されます。
  • become :プレイブックを管理者として実行するようにリモートホストに指示します。このタグを使用するには、プレイブックを実行するときにリモートホストの管理者パスワードを入力する必要があります。
  • vars :変数を定義します–この場合、 greetingという名前の変数 値はHello World!
  • tasks :プレイブックが実行するタスクのリスト。上記の例では、最初のタスクで example_playbookというディレクトリが作成されます。 リモートホスト上。 2番目のタスクは、そのディレクトリに新しいテキストファイルを作成し、greetingの値を配置します コンテンツとしての変数。
  • ... :プレイブックの終了を通知します。

プレイブックはどのように実行されますか?

Ansible Playbookは、上から下に順番に実行されます。これは、個々の演劇とそれらの演劇にリストされているタスクの両方に当てはまります。

上記の例では、プレイブックは次のアクションを順番に実行します。

  1. 変数のリストを定義します。
  2. リモートホストに新しいフォルダを作成します。
  3. 新しいフォルダにテキストファイルを作成します。
  4. 変数の値をファイルコンテンツとして追加します。

AnsiblePlaybookを実行する方法

Ansibleプレイブックを実行するには、次を使用します:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

この記事では、 example_playbook.yamlを使用します -Kを使用 引数。これにより、リモートホストのrootユーザーのパスワードを入力し、管理者としてプレイブックを実行できます。

ansible-playbook /etc/ansible/example_playbook.yaml -K

プレイブックを確認する方法

--checkを使用して、プレイブックをチェックモードで実行します フラグを立てて確認します。これにより、実際に変更を加えることなく、プレイブックが行う変更を確認できます。

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

変更の可能性の詳細については、 --checkの組み合わせを使用してください および--diff フラグ:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

便利なAnsiblePlaybookのヒント

Ansible Playbookを読みやすく、使いやすくする方法はいくつかあります。

常にプレイとタスクに名前を付ける

nameを使用する 演劇とタスクの名前を定義するキーワード。短くてわかりやすい名前を追加すると、各プレイやタスクが何をするのかが一目でわかりやすくなります。

コメントを使用

特に変数やタスクを定義するときは、コメントをたくさん追加してください。

詳細なコメントは、プレイブックをさらに明確で理解しやすくするのに役立ちます。また、プレイブックを使用している他の人にも役立ちます。

使いやすさのためにプレイブックをフォーマットする

プレイブックを機能させるにはインデントの規則に従う必要がありますが、空白(タスク間の空白行など)を使用して、プレイブックを読みやすくすることができます。


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

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

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

  1. AnsiblePlaybookの作成方法

  2. Ansibleを使用してUbuntu20.04にRedis6をインストールおよび構成する方法

  3. Ansibleを使用してDebian11にRedis6をインストールして設定する方法

  1. Ansibleでファイルを作成する方法

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

  3. Jenkins共有ライブラリ:作成、構成、および使用方法