ansible: как я могу копировать файлы на хосты в зависимости от членства в группе? - PullRequest
0 голосов
/ 01 ноября 2018

как я могу копировать файлы на хосты в зависимости от членства в группе?

Я понятия не имею, как это сделать. единственное, о чем я могу думать, это что-то вроде этого:

hostsfile:
[webserver]
hostA
[dbserver]
hostB

files:
webfile.zip
dbfile.zip

- copy:
    src: one of the files
    dest: /opt
    owner: '{owner}}'
    group: '{group}}'
    Fashion: 0644
  when: groupname == webserver then file: webfile.zip OR groupname == dbserver then dbfile.zip

но (насколько я знаю) это не может работать.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

вы можете использовать групповые переменные для этого. когда playbook работает с веб-серверами, будет загружен webserver.yml и то же самое для dbserver:

group_vars / webserver.yml

file: webfile.zip

group_vars / dbserver.yml

file: dbfile.zip

task.yml

- copy:
    src: "{{ file }}"
    dest: /opt
    owner: "{{ owner }}"
    group: "{{ group }}"
    Fashion: 0644
0 голосов
/ 01 ноября 2018

В Ansible обычно есть несколько способов сделать что-то, поэтому на самом деле все зависит от того, что будет делать ваш конечный результат из этой книги, и расскажете ли вы об этом позже. Однако одним из способов добиться этого было бы использование групповых переменных (переменные хоста могли бы делать то же самое, но настраиваться по-разному).

INVENTORY_FILE.txt

[WEBSERVERS]
hostname1

[DBSERVERS]
hostname2

[WEBSERVERS:vars]
file=webserver_file.txt
destination=/web/server/path

[DBSERVERS:vars]
file=dbserver_file.txt
destination=/db/server/path

PLAYBOOK.yml

- name: Deployment Files to Hosts
  hosts: all
  gather_facts: false
  vars:
    owner: user_name
    group: group_name

  tasks:
  - name: loop through items based on group_vars
    copy:
      src: '{{ file }}'
      dest: '{{ destination }}'
      owner: '{{ owner }}'
      group: '{{ group }}'
      mode: 644
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...