@@ -15,23 +15,24 @@ update_os
1515
1616msg_info " Installing Dependencies"
1717$STD apt-get update
18- $STD apt-get install -y curl
19- $STD apt-get install -y sudo
20- $STD apt-get install -y mc
21- $STD apt-get install -y apache2
22- $STD apt-get install -y redis-server
23- $STD apt-get install -y postgresql
24- $STD apt-get install -y python3
25- $STD apt-get install -y python3-pip
26- $STD apt-get install -y python3-venv
27- $STD apt-get install -y python3-dev
28- $STD apt-get install -y build-essential
29- $STD apt-get install -y libxml2-dev
30- $STD apt-get install -y libxslt1-dev
31- $STD apt-get install -y libffi-dev
32- $STD apt-get install -y libpq-dev
33- $STD apt-get install -y libssl-dev
34- $STD apt-get install -y zlib1g-dev
18+ $STD apt-get install -y \
19+ curl \
20+ sudo \
21+ mc \
22+ apache2 \
23+ redis-server \
24+ postgresql \
25+ python3 \
26+ python3-pip \
27+ python3-venv \
28+ python3-dev \
29+ build-essential \
30+ libxml2-dev \
31+ libxslt1-dev \
32+ libffi-dev \
33+ libpq-dev \
34+ libssl-dev \
35+ zlib1g-dev
3536msg_ok " Installed Dependencies"
3637
3738msg_info " Setting up PostgreSQL"
@@ -42,32 +43,32 @@ $STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PAS
4243$STD sudo -u postgres psql -c " CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
4344msg_ok " Set up PostgreSQL"
4445
45- msg_info " Installing NetBox"
46+ msg_info " Installing NetBox"
47+ cd /opt
4648RELEASE=$( curl -s https://api.github.com/repos/netbox-community/netbox/releases/latest | grep " tag_name" | awk ' {print substr($2, 3, length($2)-4) }' )
47- wget -q " https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE} .tar.gz "
48- tar -xzf " v${RELEASE} .tar.gz " -C /opt
49+ wget -q " https://github.com/netbox-community/netbox/archive/refs/tags/v${RELEASE} .zip "
50+ unzip -q " v${RELEASE} .zip "
4951ln -s " /opt/netbox-${RELEASE} /" /opt/netbox
50- rm " v${RELEASE} .tar.gz"
5152
5253$STD adduser --system --group netbox
5354chown --recursive netbox /opt/netbox/netbox/media/
5455chown --recursive netbox /opt/netbox/netbox/reports/
5556chown --recursive netbox /opt/netbox/netbox/scripts/
5657
57- cp /opt/netbox/netbox/netbox/configuration_example.py /opt/netbox/netbox/netbox/configuration.py
58+ mv /opt/netbox/netbox/netbox/configuration_example.py /opt/netbox/netbox/netbox/configuration.py
5859
59- secret =$( python3 /opt/netbox/netbox/generate_secret_key.py)
60- escaped_secret =$( printf ' %s\n' " $secret " | sed ' s/[&/\]/\\&/g' )
60+ SECRET_KEY =$( python3 /opt/netbox/netbox/generate_secret_key.py)
61+ ESCAPED_SECRET_KEY =$( printf ' %s\n' " $SECRET_KEY " | sed ' s/[&/\]/\\&/g' )
6162
6263sed -i ' s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = ["*"]/' /opt/netbox/netbox/netbox/configuration.py
63- sed -i " s|SECRET_KEY = ''|SECRET_KEY = '${escaped_secret } '|" /opt/netbox/netbox/netbox/configuration.py
64+ sed -i " s|SECRET_KEY = ''|SECRET_KEY = '${ESCAPED_SECRET_KEY } '|" /opt/netbox/netbox/netbox/configuration.py
6465sed -i " /DATABASE = {/,/}/s/'USER': '[^']*'/'USER': '$DB_USER '/" /opt/netbox/netbox/netbox/configuration.py
6566sed -i " /DATABASE = {/,/}/s/'PASSWORD': '[^']*'/'PASSWORD': '$DB_PASS '/" /opt/netbox/netbox/netbox/configuration.py
6667
6768$STD /opt/netbox/upgrade.sh & > /dev/null
68- sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
69+ ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
6970
70- sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
71+ mv /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
7172openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj " /C=US/O=NetBox/OU=Certificate/CN=localhost" & > /dev/null
7273$STD a2enmod ssl proxy proxy_http headers rewrite
7374$STD a2ensite netbox
@@ -81,29 +82,37 @@ systemctl enable -q --now netbox netbox-rq
8182msg_ok " Installed NetBox"
8283
8384msg_info " Setting up Django Admin"
84- NetBox_USER =Admin
85- NetBox_PASS =$( openssl rand -base64 18 | tr -dc ' a-zA-Z0-9' | cut -c1-13)
85+ DJANGO_USER =Admin
86+ DJANGO_PASS =$( openssl rand -base64 18 | tr -dc ' a-zA-Z0-9' | cut -c1-13)
8687
8788source /opt/netbox/venv/bin/activate
8889$STD python3 /opt/netbox/netbox/manage.py shell << EOF
8990from django.contrib.auth import get_user_model
9091UserModel = get_user_model()
91- user = UserModel.objects.create_user('$NetBox_USER ', password='$NetBox_PASS ')
92+ user = UserModel.objects.create_user('$DJANGO_USER ', password='$DJANGO_PASS ')
9293user.is_superuser = True
9394user.is_staff = True
9495user.save()
9596EOF
9697msg_ok " Setup Django Admin"
9798
9899msg_info " Save credential file"
99- echo " " > ~/NetBox.creds
100- echo " NetBox Database Credentials" >> ~/NetBox.creds
101- echo " " >> ~/NetBox.creds
102- echo -e " NetBox Database User: \e[32m$DB_USER \e[0m" >> ~/NetBox.creds
103- echo -e " NetBox Database Password: \e[32m$DB_PASS \e[0m" >> ~/NetBox.creds
104- echo -e " NetBox Database Name: \e[32m$DB_NAME \e[0m" >> ~/NetBox.creds
105- echo -e " NetBox Admin user: \e[32m$NetBox_USER \e[0m" >> ~/NetBox.creds
106- echo -e " NetBox Admin Password: \e[32m$NetBox_PASS \e[0m" >> ~/NetBox.creds
100+ # PSQL:
101+ {
102+ echo " Netbox-Credentials"
103+ echo -e " Netbox Database User: \e[32m$DB_USER \e[0m"
104+ echo -e " Netbox Database Password: \e[32m$DB_PASS \e[0m"
105+ echo -e " Netbox Database Name: \e[32m$DB_NAME \e[0m"
106+ echo -e " Netbox Secret: \e[32m$SECRET_KEY \e[0m"
107+ } >> ~ /netbox.creds
108+
109+ # DJANGO:
110+ {
111+ echo " "
112+ echo " Netbox-Django-Credentials"
113+ echo -e " Django User: \e[32m$DJANGO_USER \e[0m"
114+ echo -e " Django Password: \e[32m$DJANGO_PASS \e[0m"
115+ } >> ~ /netbox.creds
107116msg_ok " Save cred file"
108117
109118motd_ssh
@@ -112,4 +121,5 @@ customize
112121msg_info " Cleaning up"
113122$STD apt-get -y autoremove
114123$STD apt-get -y autoclean
124+ rm " /opt/v${RELEASE} .zip"
115125msg_ok " Cleaned"
0 commit comments