Использование Ansible для установки нового пользователя ОС Junos - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь создать нового пользователя для моего маршрутизатора vMX под управлением ОС Junos. Пользователь должен быть суперпользователем со следующими учетными данными:

имя пользователя: admin

пароль: admin123

Сделать это непосредственно из командной строки просто, я простоперейдите в режим редактирования и введите следующую команду

set system login user admin uid 3000 class super-user authentication plain-text-password

Затем консоль предложит вам ввести пароль и подтвердить его, поэтому я ввожу пароль следующим образом

admin123
admin123

Я могузатем зафиксируйте изменения и пользователь будет создан. Проблема заключается в том, что я пытаюсь повторить этот процесс для 8 разных маршрутизаторов vmx, используя ansible. Я установил следующую пьесу:

---
- name: Create admin user
  hosts: newvmx
  roles:
          - Juniper.junos
  connection: local
  gather_facts: no

  tasks:

          - name: create new user
            juniper_junos_config:
                    config_mode: "private"
                    load: "set"
                    lines:
                            - "set system login user admin123 uid 3000 class super-user authentication plain-text password"
                            - "admin123"
                            - "admin123"

Но это вернуло следующую ошибку:


PLAY [Create admin user] ***************************************************************************************************************************************************************************************

TASK [create new user] **************************************************************************************************************************************************************************************
fatal: [vMX6]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: plain-text, message: error: syntax error\nerror: unknown command\nerror: unknown command)"}

Я предполагаю, что это связано с последней частью команды, так как при выполненииПри этом непосредственно на компьютере пользователю предлагается ввести пароль, поэтому, когда строки передаются по ANIBLE, ОС не знает, что делать со строками, содержащими только пароль.

Я также попробовал следующую пьесу:

---
- name: Create admin user
  hosts: newvmx
  roles:
          - Juniper.junos
  connection: local
  gather_facts: no

  tasks:

          - name: create new user
            juniper_junos_config:
                    config_mode: "private"
                    load: "set"
                    lines:
                            - "set system login user admin uid 3000 class super-user authentication plain-text password admin123"

Но это приводит к синтаксической ошибке ниже. Так что это не удачная попытка.

PLAY [Create admin user] ***************************************************************************************************************************************************************************************

TASK [create new user] **************************************************************************************************************************************************************************************
fatal: [vMX10]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: plain-text, message: error: syntax error)"}

Так есть ли способ, которым я могу передать эту команду, чтобы создать нового пользователя и установить пароль для нового пользователя, используя ansible, чтобы ускорить процессповторить это для нескольких устройств?

1 Ответ

0 голосов
/ 18 октября 2019

Он связывается через сеанс netconf. и не является интерактивным сеансом пользователя. Следовательно, вы можете получить требуемый конфиг в файле и загрузить его с помощью juniper_junos_config

- name: create user
  hosts: all
  roles:
    - Juniper.junos
  connection: local
  gather_facts: no
  tasks:
    - name: Change Password
      juniper_junos_config:
        host: "{{ ansible_ssh_host }}"
        port: "{{ ansible_ssh_port }}"
        user: user1
        passwd: "{{ passwd }}"
        file: create_user.conf
        load: merge

cat create_user.conf <<< определить в соответствии с необходимым конфигом. </p>

system {
    -----
}

Дайте мне знать, если вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...