创建Django的超级用户的方法,使用Ansible
经过
请说明具体情况
经历
事情的经过
在使用Ansible创建netbox环境时,有一个创建django的superuser的步骤。但是由于会出现提示框,导致出现了堆栈问题,因此我找到了解决方法,并将其作为备忘录留在这里。
解决方案 ‘àn)
尝试添加–noinput选项以在一行命令中不显示提示符,但是无法输入密码,我不得不放弃。
考虑了expect模块,但由于可以在定义环境变量后执行并输入密码,所以我们决定在这里进行处理。
玩法
利用模块可以在shell中使用,但这次我们使用了django_manage。
failed_when是为了在第二次执行时不出现错误而编写的,但最好的方法是事先检查用户是否存在。
- name: Create netbox superuser
django_manage:
command: "createsuperuser --noinput"
virtualenv: /opt/netbox/venv
project_path: /opt/netbox/netbox
environment:
DJANGO_SUPERUSER_USERNAME: admin
DJANGO_SUPERUSER_PASSWORD: password
DJANGO_SUPERUSER_EMAIL: admin@example.com
register: django_result
failed_when:
- "django_result.failed"
- "'That username is already taken.' not in django_result.msg"