Skip to content

Commit 0f84a27

Browse files
authored
Merge pull request #143 from rackerlabs/move-django-users-to-scantron_secrets.json
Update how creds are generated for django, database, and users
2 parents 6b9ad89 + f5f43ac commit 0f84a27

File tree

5 files changed

+26
-22
lines changed

5 files changed

+26
-22
lines changed

ansible-playbooks/roles/master/tasks/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,13 @@
233233
chdir: "{{ scantron_dir }}"
234234

235235
- name: Create initial "{{ django_super_user }}" superuser.
236-
shell: echo "from django.contrib.auth.models import User; User.objects.create_superuser('{{ django_super_user }}', '{{ django_super_user_email }}', '{{ scantron_secrets["django_super_user_password"] }}')" | {{ venv_python }} {{ scantron_dir }}/manage.py shell
236+
shell: echo "from django.contrib.auth.models import User; User.objects.create_superuser('{{ scantron_secrets["django_super_user"] }}', '{{ scantron_secrets["django_super_user_email"] }}', '{{ scantron_secrets["django_super_user_password"] }}')" | {{ venv_python }} {{ scantron_dir }}/manage.py shell
237237
args:
238238
chdir: "{{ scantron_dir }}"
239239
ignore_errors: yes # Only applicable if playbook has already been run. Use 'python manage.py change changepassword admin'.
240240

241241
- name: Create "{{ django_user }}" user.
242-
shell: echo "from django.contrib.auth.models import User; User.objects.create_user('{{ django_user }}', '{{ django_user_email }}', '{{ scantron_secrets['django_user_password'] }}')" | {{ venv_python }} {{ scantron_dir }}/manage.py shell
242+
shell: echo "from django.contrib.auth.models import User; User.objects.create_user('{{ scantron_secrets["django_user"] }}', '{{ scantron_secrets["django_user_email"] }}', '{{ scantron_secrets['django_user_password'] }}')" | {{ venv_python }} {{ scantron_dir }}/manage.py shell
243243
args:
244244
chdir: "{{ scantron_dir }}"
245245
ignore_errors: yes # Only applicable if playbook has already been run. Use 'python manage.py changepassword scantron'.

ansible-playbooks/roles/master/vars/main.yml

-6
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,5 @@ venv_python: "{{ venv_dir }}/bin/python3.6"
4040
# Django
4141
django_project_name: django_scantron
4242

43-
django_super_user: admin
44-
django_super_user_email: changeme@localhost # Filler email address, does not matter.
45-
46-
django_user: agent1
47-
django_user_email: changeme@localhost # Filler email address, does not matter.
48-
4943
# uwsgi
5044
uwsgi_version: 2.0.18

initial_setup.sh

+17-11
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,33 @@ cp master/scantron_secrets.json.empty master/scantron_secrets.json
3636

3737
# Generate random Django key.
3838
# https://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-from-the-command-line/
39-
echo "[*] Generating random Django Key and database passwords."
40-
# Locale needs to be set for OSX, else tr responds with "tr: Illegal byte sequence".
41-
# https://unix.stackexchange.com/questions/45404/why-cant-tr-read-from-dev-urandom-on-osx
39+
echo "[*] Generating a random Django Key, database, and user passwords."
40+
4241
if [[ `uname` == "Darwin" ]]
4342
then
43+
# Locale needs to be set for OSX, else tr responds with "tr: Illegal byte sequence".
44+
# https://unix.stackexchange.com/questions/45404/why-cant-tr-read-from-dev-urandom-on-osx
4445
DJANGO_KEY=`< /dev/urandom LC_ALL=C tr -dc _A-Z-a-z-0-9 | head -c${1:-64};echo;`
4546
DATABASE_PASSWORD=`< /dev/urandom LC_ALL=C tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
47+
DJANGO_SUPER_USER_PASSWORD=`< /dev/urandom LC_ALL=C tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
48+
DJANGO_USER_PASSWORD=`< /dev/urandom LC_ALL=C tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
49+
50+
# -i requires additional arguments on OSX, else it responds with "sed: 1: "<filename>": invalid command code".
51+
# https://markhneedham.com/blog/2011/01/14/sed-sed-1-invalid-command-code-r-on-mac-os-x/
52+
sed -i "" "s/REPLACE_THIS_DJANGO_KEY/$DJANGO_KEY/g" master/scantron_secrets.json
53+
sed -i "" "s/REPLACE_THIS_DATABASE_PASSWORD/$DATABASE_PASSWORD/g" master/scantron_secrets.json
54+
sed -i "" "s/REPLACE_THIS_DJANGO_SUPER_USER_PASSWORD/$DJANGO_SUPER_USER_PASSWORD/g" master/scantron_secrets.json
55+
sed -i "" "s/REPLACE_THIS_DJANGO_USER_PASSWORD/$DJANGO_USER_PASSWORD/g" master/scantron_secrets.json
4656
else
4757
DJANGO_KEY=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-64};echo;`
4858
DATABASE_PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
49-
fi
59+
DJANGO_SUPER_USER_PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
60+
DJANGO_USER_PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;`
5061

51-
# -i requires additional arguments on OSX, else it responds with "sed: 1: "<filename>": invalid command code".
52-
# https://markhneedham.com/blog/2011/01/14/sed-sed-1-invalid-command-code-r-on-mac-os-x/
53-
if [[ `uname` == "Darwin" ]]
54-
then
55-
sed -i "" "s/REPLACE_THIS_DJANGO_KEY/$DJANGO_KEY/g" master/scantron_secrets.json
56-
sed -i "" "s/REPLACE_THIS_DATABASE_PASSWORD/$DATABASE_PASSWORD/g" master/scantron_secrets.json
57-
else
5862
sed -i "s/REPLACE_THIS_DJANGO_KEY/$DJANGO_KEY/g" master/scantron_secrets.json
5963
sed -i "s/REPLACE_THIS_DATABASE_PASSWORD/$DATABASE_PASSWORD/g" master/scantron_secrets.json
64+
sed -i "s/REPLACE_THIS_DJANGO_SUPER_USER_PASSWORD/$DJANGO_SUPER_USER_PASSWORD/g" master/scantron_secrets.json
65+
sed -i "s/REPLACE_THIS_DJANGO_USER_PASSWORD/$DJANGO_USER_PASSWORD/g" master/scantron_secrets.json
6066
fi
6167

6268
echo "[+] Done!"

master/django_scantron/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.13"
1+
__version__ = "1.14"

master/scantron_secrets.json.empty

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{
2-
"django_super_user_password": "",
3-
"django_user_password": "",
2+
"django_super_user": "admin",
3+
"django_super_user_password": "REPLACE_THIS_DJANGO_SUPER_USER_PASSWORD",
4+
"django_super_user_email": "changeme@localhost",
5+
"django_user": "agent1",
6+
"django_user_password": "REPLACE_THIS_DJANGO_USER_PASSWORD",
7+
"django_user_email": "changeme@localhost",
48
"production": {
59
"SECRET_KEY": "REPLACE_THIS_DJANGO_KEY",
610
"DATABASE_NAME": "scantron",

0 commit comments

Comments
 (0)