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

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

はじめに

AnsibleはInfrastructureasCodeツールであり、単一の中央ロケーション(Ansible制御ノード)を使用して、多数のリモートサーバー(ホスト)を監視および制御できます。

Ansibleを使用して、新しいファイルやディレクトリの作成など、リモートホストが実行できるいくつかのタスクを設定します。

このチュートリアルでは、Ansibleを使用してリモートホストでファイルを作成するさまざまな方法について説明します。

前提条件

  • Ubuntu20.04を実行しているシステム
  • コマンドライン/ターミナルウィンドウへのアクセス
  • Ansibleのインストールと構成(WindowsへのAnsibleのインストールまたはUbuntuへのAnsibleのインストールに関するガイドを参照)

AnsiblePlaybookの作成

Ansible Playbookは、リモートホストに実行させたいタスクのリストです。保存して再利用できるため、複雑なプロセスを自動化できます。

ファイルやフォルダーの作成など、リモートホストに発行するすべてのコマンドは、プレイブックに含める必要のあるタスクです。プレイブックを実行すると、リモートホストはプレイブックで定義されているすべてのタスクを実行します。

Ansibleプレイブックを作成するには、次のコマンドを使用します:

sudo nano /etc/ansible/playbook.yaml

このコマンドは、「playbook」という.yamlファイルを作成します Ansibleインストールフォルダーにあります。 playbook.yamlのタスクを使用します リモートホスト上にファイルとフォルダを作成するためのファイル。

Ansibleのドライラン機能を使用すると、ユーザーはサーバーに変更を加えることなくプレイブックを実行できます。組み込みのチェックモードを使用して、実行前にプレイブックのエラーを証明します。

空のファイルの作成

空のファイルを作成する最も速い方法は、Ansibleのfileを使用することです。 モジュール。

次の構成をAnsibleプレイブックに追加します:

---

- hosts: all
  tasks:
  - name: Creating an empty file
    file:
      path: "/your path"
      state: touch

上記のファイルには、次のコンポーネントが含まれています。

  • hosts タスクを実行するAnsibleインベントリファイルのリモートホストを定義します。すべては、すべてのホストがコマンドを受信することを意味しますが、ホストカテゴリまたは1つの個別のホストの名前を入力することもできます。
  • tasks リモートホストがタスクを実行する必要があることをアナウンスします。
  • name :タスクの名前を定義できます。名前は参照用であり、タスク自体には影響しません。
  • file :Ansibleのファイルモジュールを使用して新しいファイルを作成します。
  • path :リモートホストのハードドライブ上の新しいファイルのパスを定義します。
  • state :Ubuntuターミナルのtouchコマンドと同様に、 touchと入力します。 選択した場所に空のファイルを作成します。

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

ansible-playbook /etc/ansible/playbook.yaml

コンテンツを含むファイルの作成

コンテンツを含む新しいファイルを作成する場合は、最初に上記の方法を使用して空のファイルを作成してから、 blockinfileを使用できます。 またはlineinfile コンテンツを挿入するモジュール。

より簡単な方法は、copyを使用することです モジュール。このモジュールは、制御ノードからリモートホストにファイルをコピーするために使用されますが、contentを含めることができます。 空のファイルにコンテンツを即座に追加するためのパラメータ。

プレイブックでこの構成を使用します:

---

- hosts: all
  tasks:
  - name: Creating a file with content
    copy:
      dest: "/your path"
      content: |
        line 01
        line 02

ファイルでは、次を使用しました:

  • copy :Ansibleのコピーモジュールを使用します。
  • dest :新しいファイルのパスを定義します。
  • content :このパラメータはline 01を追加します およびline 02 新しいファイルのコンテンツとして。

複数のファイルの作成

Ansibleプレイブックの1つのタスクを使用して、複数のファイルを作成できます。

次の構成を使用して、複数のファイルを作成します。

---

- hosts: all
  tasks:
  - name: Create multiple files
    file: 
      path: "{{ item }}"
      state: touch
    with_items:
    - test01.txt
    - test02.txt
    - test03.txt
    - test04.txt

上記の構成ファイルでは、次のように定義しました。

  • path "{{ item }}" 値は、Ansibleがそれぞれのファイルごとに個別のパスを作成することを意味します。デフォルトでは、これらのファイルはリモートホストのホームフォルダにあります。 /your_folder_path/"{{ item }}"を使用して、別のパスを定義します
  • with_items :このパラメーターは、作成するファイルのリストを開始するために使用されます。必要な数のファイルをリストします。この例では、 testというタイトルの4つのファイルのリストを作成しました。 。

ディレクトリの作成

新しいディレクトリの作成では、空のファイルを作成する場合と同じ構成が使用されます。唯一の違いは、stateの下にあることです パラメータ、directoryを入力します 値として:

---

- hosts: all
  tasks:
  - name: Creating a new directory
    file:
      path: "/your path"
      state: directory

ファイルの削除

Ansible Playbookは、既存のファイルを削除することもできます。これを行うには、stateを設定します absentへのパラメータ

---

- hosts: all
  tasks:
  - name: Removing a file
    file:
      path: "/your path"
      state: absent

ファイルがすでに削除されている場合、このコマンドは何もしません。

ファイルのアクセス許可の設定

上記のすべての例で、新しいファイルとフォルダーのアクセス許可を設定することもできます。このためには、modeを使用する必要があります パラメータ。

これを行うには2つの方法があります:

  • 8進モード形式の使用: 0644や0777などの8進数を使用できます。先頭の0を省略すると、予期しない結果が生じる可能性があるため、忘れないでください。
  • シンボリックモード形式の使用: u=rwxのような値を使用できます g=rx 、または o=rx 、ここで u 所有者の略です 、 g groupの略です 、および o その他の略です 。権限はrとして定義されています 読む w 書き込みの場合 、および x 実行の場合 。

たとえば、所有者を定義するときに、8進数の値0755を使用できます。

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: 0755
      owner: test

0755と同等の記号を使用することもできます:

---

- hosts: all
  tasks:
  - name: Create a new file with permissions
    file:
      path: "/your path"
      state: touch
      mode: u=rwx,g=rx,o=rx
      owner: test

Ubuntu
  1. AnsiblePlaybookの作成方法

  2. Linuxでスワップを作成する方法

  3. Linuxでスワップファイルを作成する方法

  1. Pleskファイルマネージャでファイルを作成する方法

  2. Ansibleを使用してLinuxユーザーを作成する方法

  3. ファイルを作成してファイルシステムとしてマウントする方法は?

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

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

  3. シェルスクリプトで一時ファイルを作成するにはどうすればよいですか?