2017-02-23 2 views
0

I'm новичок с этим фантастическим двигателем автоматизации, и есть небольшая проблема с файлом VARS:анзибль: с помощью переменных на файл хостов (SSH)

г. К momment, я должен подключиться через SSH без keypars с помощью специфические пользователи и пароль.

файл хостов

[all:vars] 
connection_mode1=ssh 
ssh_user1=user1 
ssh_pass1=pass1 

[serverstest] 
host1 ansible_connection=connection_mode1 ansible_ssh_user=ssh_user1 ansible_ssh_pass=ssh_pass1 

Я также пытаюсь обернуть с "" и {}, но не работает.

Как использовать переменные по этим параметрам?

+0

почему бы не просто определить 'ansible_connection' и другой PARAMS в' [все: вары] '? –

ответ

2

ansible_ssh_user был устаревшим с версии 2.0. Будет ansible_user. См. here.

Не хранить ansible_ssh_pass переменная в виде обычного текста; всегда используйте хранилище. См. Variables and Vaults.

Во всяком случае, имея mytest.inventory файл следующим образом

[all:vars] 
ssh_user1=user1 

[serverstest] 
host1 ansible_user="{{ ssh_user1 }}" 

он работает, например,

ansible -i mytest.inventory serverstest -m ping -k 

Опция -k запрашивает пароль.

Если вы все еще хотите написать пароль в инвентаре вы можете оставить определение переменного пароля и добавить ansible_ssh_pass="{{ ssh_pass1 }}"

[serverstest] 
192.168.15.201 ansible_user="{{ ssh_user1 }}" ansible_ssh_pass="{{ ssh_pass1 }}" 
+0

спасибо! Я только проверяю возможности в среде lab'environment для реализации этих решений. По momment, безопасность не имеет высокий приоритет, но ваше назначение с благодарностью принято :) Im тест следующий '[все: вары] ssh_user1 = пользователь ssh_pass1 = пароль [serverstest] machine1 ansible_ssh_user =» {{ssh_user1}}»ansible_ssh_pass = "{{ssh_pass1}}" machine2 ansible_user = "{{ssh_user1}}" ansible_ssh_pass = "{{ssh_pass1}}"' – Ramos

+0

правый комментарий: Im тест следующий '[все: vars] ssh_user1 = пользователь ssh_pass1 = пароль [serverstest] machine1 ansible_ssh_user = "{{ssh_user1}}" ansible_ssh_pass = "{{ssh_pass1}}" machine2 ansible_user = "{{ssh_user1}} "ansible_ssh_pass =" {{ssh_pass1}} "' машина 2 (без «ssh» у пользователя) не работает. Но это не имеет значения Большое вам спасибо за отзыв – Ramos

+0

Возможно, это зависит от версии Ansible. Если он меньше 2.0, то anslibe_ssh_user прав. – gile

Смежные вопросы