创建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"
广告
将在 10 秒后关闭
bannerAds