Как запустить одни и те же книги и инвентаризации с или без Jumphost? - PullRequest
0 голосов
/ 13 января 2020

У меня есть несколько книг и инвентаризаций, и мне нужно запустить их из 2 разных мест.

Одна, для которой требуется перемычка, а другая - нет.

Я определил эту точку в мой инвентарь, но при попытке запустить playbook на локальном компьютере (не требуется переходный узел) не удастся.

Есть ли способ загрузить связанные с S SH переменные, основанные на ansible имени хоста?

1 Ответ

0 голосов
/ 13 января 2020

Если вам просто нужно запустить что-то на локальном хосте .. вы можете сделать это с помощью указанных c задач:

попробуйте local_action .. например:

- name: copy file
  local_action:
    module: copy
    src: stfile
    dest: /path/to/testfile

или вы можно использовать делегат_то:

- name: copy a file
  delegate_to: localhost
  copy:
    src: testfile
    dest: /path/to/testfile

Редактировать: ОК, кажется, я неправильно понял ваш вопрос. Похоже, ваш вопрос заключается в том, что вы запускаете playbook с двух разных хостов, один работает, а другой не работает, и поэтому вам нужен лог c, который будет выбирать разные переменные для вас в зависимости от хоста?

Вы можете включить logi c в задачи, используя условные выражения, например, так:

     - name: get ansible hostname    
       local_action:
          module: shell
          cmd: hostname
        register: hostname_output

     - shell: echo '{{variablefornonjumpbox}}' 
       when: hostname_output.stdout.find('jumpbox') != -1"

Если вам нужно изменить цель S SH и детали, основанные на имени хоста, Вы можете использовать специальные переменные, такие как те, что находятся внизу этой страницы: https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html

Надеюсь, это поможет. Если нет, мне понадобятся некоторые пояснения относительно переменных, которые вы используете, и ошибки, которые вы видите.

...