Ansible-playbook, кажется, игнорирует первый файл инвентаря при запуске, как показано ниже. Он распознает только последний файл.
Не могли бы вы посоветовать, как запустить его на обоих серверах? У меня работает ansible-playbook 2.3.2.0
ansible-playbook -i test1.infrastructure -i test2.infrastructure deploy_server.yml
PLAY [all] *********************************************
TASK [Gathering Facts] *********************************************
ok: [test2]
TASK [Get release package] *********************************************
[WARNING]: Consider using unarchive module rather than running tar
changed: [test2]
TASK [Set latest_sourcetree] *********************************************
ok: [test2]
...
Ниже приведены примеры файлов инвентаризации
test1.infrastructure
##################
[test1]
##################
test1hostname
[test1:vars]
# Database
db_server=dbservername
dbschema=test1schema
oracle_sid=test1sid
oracle_port=1521
...
test2.infrastructure
##################
[test2]
##################
test2hostname
[test2:vars]
# Database
db_server=dbservername
dbschema=test2schema
oracle_sid=test2sid
oracle_port=1521
...
deploy_server.yml
- hosts: all
pre_tasks:
- name: Get directory name in server release package
shell: tar -tzf "{{server_release_package}}" | head -1 | sed -e 's/\/.*//'
register: server_code_dir
- name: Set latest_sourcetree variable = "{{server_root_dir}}/{{server_code_dir.stdout}}"
set_fact:
latest_sourcetree: "{{server_root_dir}}/{{server_code_dir.stdout}}"
roles:
- deploy_source_tree
deploy_source_tree / задачи / main.yml
- name: Create directory {{latest_sourcetree}}
file:
path={{latest_sourcetree}}
state=directory
- name: Unpack server release package to {{latest_sourcetree}}
unarchive:
src: "{{server_release_package}}"
dest: "{{server_root_dir}}"
remote_src: yes
- name: Write runtime properties file
template:
src: "{{playbook_dir}}/environments/{{client_id}}/{{env_id}}/files/server.runtime.properties"
dest: "{{latest_sourcetree}}/conf/server.runtime.properties.{{dbschema}}"
- name: Generate Cshrc file
shell: cd {{latest_sourcetree}}/conf/ ; ./generate.sh -p server.runtime.properties.{{dbschema}} -b -d -t -o Cshrc.{{dbschema}}
- name: Replace new Cshrc file
...
EDITED - предложение @itiic работает, помещает файлы инвентаризации в каталог и запускается с "-i dirname", мне все еще интересно, почему использование нескольких -i не работает, если кто-то может посоветовать, Я действительно ценю