Ansible:确保所有服务器上的目录所有权/权限

时间:2017-09-29 10:35:40

标签: ansible

鉴于一堆服务器,A..Z,确保这些服务器上的所有/dir/path目录(这些目录存在的地方)的最佳方法是设置为某个所有者,组和模式?

我可以看到如何为特定角色执行此操作,例如

- name: Add apache vhosts configuration.
  template:
    src: "vhosts.conf.j2"
    dest: "{{ apache_conf_path }}/{{ apache_vhosts_filename }}"
    owner: root
    group: root
    mode: 0644
  notify: restart apache
  when: apache_create_vhosts

但是你如何在各种服务器上做到这一点?

1 个答案:

答案 0 :(得分:0)

http://docs.ansible.com/ansible/latest/file_module.html

- name: Change ownership of the folder
  file:
    state   : directory
    recurse : yes
    path    : "{{ folder }}"
    mode    : "{{ desired_mode }}"

在要更改的所有系统上执行任务。 显然,将其作为必要的用户运行;如果是root,请确保在需要时指定所有者和组。

请原谅我,如果这看起来有点基础,但有时很明显重申 - http://docs.ansible.com/ansible/latest/intro_inventory.html

要针对服务器列表运行,请将它们放在清单文件中的一个组中,然后将该组上的任务作为主机调用。

主机文件示例:

[targetServers]
host1
host2
# etc

然后在你的main.yml

- name: do the thing
  hosts: targetServers
  # etc

然后ansible-playbook -i hosts -v main.yml等等。