我正在尝试为运行 Junos OS 的 vMX 路由器创建一个新用户。用户需要是具有以下凭据的超级用户:
用户名:管理员
密码:admin123
直接从命令行执行此操作很容易,我只需更改为编辑模式并键入以下命令
set system login user admin uid 3000 class super-user authentication plain-text-password
控制台然后提示你输入密码然后确认,所以我输入密码如下
admin123
admin123
然后我可以提交更改并创建用户。问题在于,当我尝试使用 ansible 对 8 个不同的 vmx 路由器重复此过程时。我已经设置了以下剧本:
---
- 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)"}
我假设这与命令的最后一部分有关,因为直接在机器上执行此操作时,会提示用户输入密码,所以当这些行由 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 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 为新用户设置一个密码来加快对多个设备重复它的过程?