2017-02-12 23 views
5

Mục tiêu:Ansible - Tạo nhiều thư mục nếu không tồn tại

  • Tạo nhiều thư mục nếu họ không tồn tại.
  • Không thay đổi quyền truy cập của thư mục hiện

playbook hiện tại:

- name: stat directories if they exist 
    stat: 
    path: "{{ item }}" 
    with_items: 
    - /data/directory 
    - /data/another 
    register: myvar 

- debug: var=myvar.results 

- name: create directory if they don't exist 
    file: 
    path: "{{ item.invocation.module_args.path }}" 
    state: directory 
    owner: root 
    group: root 
    mode: 0775 
    with_items: "{{ stat.results }}" 
    # when: myvar.results.stat.exists == false 

Các when tuyên bố là sai.

Tôi đã xem ví dụ được cung cấp; http://docs.ansible.com/ansible/stat_module.html. Nhưng điều này chỉ hoạt động cho một thư mục duy nhất.

Trả lời

6

Ansible - Tạo nhiều thư mục mà không thay đổi quyền truy cập tồn tại trước đó.

Làm việc tốt cho tôi. Hy vọng điều này làm việc cho bạn cũng như thử.

--- 
- name: "Creating multiple by checking folders" 
    hosts: your_host_name 
    tasks: 
    - block: 
    - name: "Checking folders" 
     stat: 
     path: "{{item}}" 
     register: folder_stats 
     with_items: 
     - ["/var/www/f1","/var/www/f2","/var/www/f3","/var/www/f4"] 
    - name: "Creating multiple folders without disturbing previous permissions" 
     file: 
     path: "{{item.item}}" 
     state: directory 
     mode: 0755 
     group: root 
     owner: root 
     when: item.stat.exists == false 
     with_items: 
     - "{{folder_stats.results}}" 
... 
+1

Điều này hy vọng sẽ làm việc cho tất cả –

3

Sử dụng module Ansible, bạn không cần phải kiểm tra xem một cái gì đó tồn tại hay không, bạn chỉ cần mô tả trạng thái mong muốn, vì vậy:

- name: create directory if they don't exist 
    file: 
    path: "{{ item }}" 
    state: directory 
    owner: root 
    group: root 
    mode: 0775 
    with_items: 
    - /data/directory 
    - /data/another 
+0

Điều này sẽ thay đổi quyền của thư mục thành root: root. Tôi không muốn thay đổi người dùng/nhóm nếu thư mục đã tồn tại. – Kevin

+0

Sau đó chỉ định quyền mong muốn cho mỗi thư mục. – techraf

+0

Hmm ... Vì vậy, những gì tôi mong muốn là không thể trong Ansible? – Kevin

Các vấn đề liên quan