Использование зашифрованной переменной с Ansible-Vault для автоматизации сети - PullRequest
0 голосов
/ 26 марта 2019

Я искал много учебников в Интернете и на YouTube, но не повезло.

Я хочу настроить коммутатор Cisco через Ansible, у меня уже есть его настройка, работает без нареканий ... но я хочу сохранить пароли(для строк vty, console, enable secret ...) в идеале в hosts файле, зашифрованном через Ansible-Vault в качестве переменных, поэтому в моем файле .yml я могу получить к ним доступ.Я хочу, чтобы они были в файле hosts, потому что у нас есть разные пароли для ASW, DSW и CSW, чтобы им было проще управлять.

Я сгенерировал зашифрованную переменную в CLI:

ansible-vault encrypt_string enable_password --ask-vault-pass

Я скопировал значение в переменную в / etc / ansible / hosts:

...
[2960-X:vars]
ansible_become=yes
ansible_become_method=enable
ansible_network_os=ios
ansible_user=admin
enable_password= !vault |
     $ANSIBLE_VAULT;1.1;AES256
     .....

В config.yml:

   - name: Set enable password
     ios_config:
       lines:
         - enable secret "{{ enable_password }}"

Сейчас пароль будет установлен как "! Vault |"Я не уверен, является ли это даже лучшей практикой, я прочитал рекомендации для этого, но все, что я мог найти, было об автоматизации сервера, а не сетях.

Я использую Ansible 2.8.0

Любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 26 марта 2019

Позвольте мне процитировать из Переменные и хранилища

При запуске книги воспроизведения Ansible находит переменные в незашифрованном файле, а все конфиденциальные переменные берутся из зашифрованного файла.

Лучшая практика . Для этого следует начать с подкаталога group_vars /, названного в честь группы.Внутри этого подкаталога создайте два файла с именами vars и vault .Внутри файла vars определите все необходимые переменные, включая любые чувствительные.Затем скопируйте все конфиденциальные переменные в файл хранилища и добавьте к этим переменным префикс vault_ .Вы должны настроить переменные в файле vars так, чтобы они указывали на соответствующие переменные vault_ с использованием синтаксиса jinja2, и убедиться, что файл хранилища зашифрован в хранилище .

Эта схема не ограничивается только group_vars / и может применяться к любому месту, откуда берутся переменные.

...