web-dev-qa-db-ja.com

Ansibleを使用してディレクトリを作成する方法

Ansibleプレイブックを使用して、Debianベースのシステム上で/srvにディレクトリwwwをどのように作成しますか?

317
Gaurav Agarwal

あなたはファイルモジュールが欲しいです。ディレクトリを作成するには、オプションstate=directoryを指定する必要があります。

- name: Creates directory
  file:
    path: /src/www
    state: directory

あなたは他のオプションを見ることができます http://docs.ansible.com/file_module.html

536
leucos

ファイルモジュールを拡張して、それを通して所有者、グループ、パーミッションを設定することもできます。 (Ref: Ansibleファイルのドキュメント

- name: Creates directory
  file:
    path: /src/www
    state: directory
    owner: www-data
    group: www-data
    mode: 0775

でも、ディレクトリを再帰的に作成することができます。

- name: Creates directory
  file:
    path: /src/www
    state: directory
    owner: www-data
    group: www-data
    mode: 0775
    recurse: yes

このようにして、両方のディレクトリが存在しない場合は作成されます。

178
Arbab Nazar

あなたが使用して作成することができます:

最新バージョン2 <

- name: Create Folder
  file: 
    path: /srv/www/
    owner: user 
    group: user 
    mode: 0755 
    state: directory

古いバージョン

- name: Create Folder
  file: 
   path=/srv/www/
   owner=user 
   group=user 
   mode=0755 
   state=directory

参照してください - http://docs.ansible.com/ansible/file_module.html

ディレクトリはファイルにすぎないので、ディレクトリはファイルモジュールのみを使用して作成できます。

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: foo
    group: foo
12
user3004224
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
    owner: someone
    group: somegroup

それはあなたが実際にも許可、所有者、グループを設定することができる方法です。最後の3つのパラメータは必須ではありません。

7
qubsup

ディレクトリを作成することができます。使う

# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755

ディレクトリとファイルシステムの詳細については http://docs.ansible.com/ansible/file_module.html を参照してください。

6
Ali Warrich

あなたは文を使用することができます

- name: webfolder - Creates web folder
  file: path=/srv/www state=directory owner=www-data group=www-data mode=0775`
3
Mazi

Ansibleの文書によれば 、次のように定義することで可能になります。

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755
3
030

特定の配布用のタスクを実行するための条件を設定するだけです

- name: Creates directory
  file: path=/src/www state=directory
  when: ansible_distribution == 'Debian'
2
Bhavesh Vasoya

ディレクトリ、ファイルを作成するためのモジュールがあります。

- name: Creates directory
  file:
    path: /src/www
    state: directory
2

ここでのすべての答えに加えて、複数のディレクトリを作成する必要がある場合が多いので、各ディレクトリに別々のタスクを作成する代わりにループを使用することをお勧めします。

- name: Creates directory
  file:
    path: "{{ item }}"
    state: directory
  with_items:
  - /srv/www
  - /dir/foo
  - /dir/bar
2

ディレクトリを作成するには

ansible Host_name -m file -a "dest=/home/ansible/vndir state=directory"
1
sachin_ur

Ansibleでディレクトリを作成にする最も簡単な方法。

  • name:your_directoryが存在しない場合は作成します。ファイル:パス:/ etc/your_directory

または

そのディレクトリにSudo権限を与えたい。

  • name:your_directoryが存在しない場合は作成します。ファイル:パス:/ etc/your_directoryモード: '777'
1
Muhammad Ahmad
---
- hosts: all
  connection: local
  tasks:
    - name: Creates directory
      file: path=/src/www state=directory

Playbookの上には/ srcパスにwwwディレクトリが作成されます。

プレイブック上で走る前に。あなたのAnsible Host接続が設定されるべきであることを確認してください、

"localhost ansible_connection = local"

/ etc/ansible/hostsに存在する必要があります。

詳細については私に知らせてください。

1
Saurabh

Windowsでディレクトリを作成したい場合:

  • name:ディレクトリ構造を作成
    win_file:
    パス:C:\ Temp\folder\subfolder>
    state:ディレクトリ
0
Alexandru Muica

ファイルモジュールを使用してディレクトリを作成し、コマンド "ansible-doc file"を使用してファイルモジュールに関する詳細を取得します。

これが説明するオプション "state"です。

directoryの場合、直接サブディレクトリが存在しない場合はすべて作成されます。1.7以降は、提供された権限を使用して作成されます。
fileの場合、ファイルが存在しなければ作成されません。そのようにしたい場合は[copy]または[template]モジュールを参照してください。
linkの場合、シンボリックリンクは作成または変更されます。ハードリンクにはhardを使用してください。
もしabsentなら、ディレクトリは再帰的に削除され、ファイルやシンボリックリンクはリンク解除されます。

状態が変化しなかったのでパスが存在しなくてもfileは失敗しないことに注意してください。

touch(1.4の新機能)の場合、パスが存在しない場合は空のファイルが作成されますが、既存のファイルまたはディレクトリは更新されたファイルアクセスおよび変更時刻を受け取ります(touchがコマンドラインから機能する方法と同様)。

0
Priyanka Tyagi

この場合は "file"モジュールを使用できます。所有者、グループ、場所、モードなど、新しく作成されたディレクトリに渡すことができる引数は非常にたくさんあります.....

ファイルモジュールの詳細な説明についてはこの文書を参照してください。

https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module

このモジュールはディレクトリを作成するためだけのものではありません。

0
user11345576

あなたは直接コマンドを実行し、ansibleを使って直接作成することができます。

ansible -v targethostname -m Shell -a "mkdir /srv/www" -u targetuser

OR

ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser
0
RegexCracker