Ansible: приглашенный пользователь для целевого хоста [дубликат]

Мне кажется, вы пытаетесь сопоставить теги без «/» в конце. Попробуйте следующее:

<([a-zA-Z][a-zA-Z0-9]*)[^>]*(?<!/)>
8
задан techraf 20 January 2017 в 01:37
поделиться

4 ответа

Правильный способ сделать это - создать динамический хост с add_host и поместить его в новую группу, а затем запустить новую игру, предназначенную для этой группы. Таким образом, если у вас есть другие ключи подключения, которые необходимо установить заранее (учетные данные / ключи / etc), вы можете установить их в пустой группе в инвентаре, а затем добавить хост к ней динамически. Например:

- hosts: localhost
  gather_facts: no
  vars_prompt:
  - name: target_host
    prompt: please enter the target host IP
    private: no
  tasks:
    - add_host:
        name: "{{ target_host }}"
        groups: dynamically_created_hosts

- hosts: dynamically_created_hosts
  tasks:
  - debug: msg="do things on target host here"
17
ответ дан nitzmahone 16 August 2018 в 10:23
поделиться

Отказ от ответственности: Принятый ответ предлагает наилучшее решение проблемы.

Я узнал, что можно использовать недокументированный hack в настоящее время (кредит для Bruce P для указания на сообщение), который превращает значение параметра -i / --inventory в специальный список хостов (ссылка ).

Команда:

ansible-playbook -i "192.168.1.21," playbook.yml

И, соответственно, playbook.yml можно запустить против всех хостов (которые в приведенном выше примере будут равны одному хосту 192.168.1.21):

- hosts: all 

В списке может быть более одного IP-адреса -i "192.168.1.21,192.168.1.22" ]

1
ответ дан Community 16 August 2018 в 10:23
поделиться
  • 1
    Мне не нравится этот подход, потому что если кто-то запускает плей-лист без параметров по ошибке, ад разрывается . – sorin 16 March 2016 в 16:48

Добавление ответа Мэтта для нескольких хостов.

пример ввода будет 192.0.2.10,192.0.2.11

- hosts: localhost
  gather_facts: no
  vars_prompt:
  - name: target_host
    prompt: please enter the target host IP
    private: no
  tasks:
    - add_host:
        name: "{{ item }}"
        groups: dynamically_created_hosts
      with_items: "{{ target_host.split(',') }}"


- hosts: dynamically_created_hosts
  tasks:
  - debug: msg="do things on target host here"
2
ответ дан Jacob Evans 16 August 2018 в 10:23
поделиться

Вместо этого вы можете передать его с помощью extra-vars .

Просто сделайте раздел hosts переменной, например {{ hosts_prompt }}, а затем передайте хост в командной строке например:

ansible-playbook -i inventory/environment playbook.yml --extra-vars "hosts_prompt=192.168.1.10"

Или, если вы используете местоположение файла инвентаря по умолчанию в /etc/ansible/hosts, вы можете просто использовать:

ansible-playbook playbook.yml --extra-vars "hosts_prompt=192.168.1.10"
4
ответ дан ydaetskcoR 16 August 2018 в 10:23
поделиться
  • 1
    Часть inventory/environment является всего лишь примером (как и для playbook.yml). Если вы не предоставили файл инвентаря с помощью -i, то Ansible просто подберет файл инвентаризации по умолчанию /etc/ansible/hosts, который обычно не требуется, даже если вы указываете хосты с помощью extra-vars – ydaetskcoR 14 October 2015 в 15:36
  • 2
    Это пример того, как передать extra-vars, а не «вот точная строка, которую вы должны ввести». И инвентарь является необходимым аргументом, он по умолчанию по умолчанию /etc/ansible/hosts, и если этот файл не существует, он будет терпеть неудачу. – ydaetskcoR 15 October 2015 в 06:40
  • 3
    @techraf: ваши предложенные изменения были отклонены в очереди просмотра. ydaetskcoR не имеет к этому никакого отношения. Подобные изменения просто не принимаются на SO. Поскольку этот ответ does в настоящее время предоставляет вам ответ, вы действительно должны принять его, для будущих посетителей. – Cerbrus 15 October 2015 в 10:15
  • 4
    Ваш ответ был удален, потому что это была копия этого патча. Подобный плагиат не допускается на SO. OP этого ответа теперь добавил ваш конкретный случай к ответу, поэтому я действительно не вижу причин не принимать этот ответ. – Cerbrus 15 October 2015 в 10:44
Другие вопросы по тегам:

Похожие вопросы: