|
| 1 | +FROM debian:buster |
| 2 | +env DEBIAN_FRONTEND noninteractive |
| 3 | +env FILEBEAT_DEB_URL https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.5.2-amd64.deb |
| 4 | +env FILEBEAT_RPM_URL https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.5.2-x86_64.rpm |
| 5 | +env METRICBEAT_DEB_URL https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-5.5.2-amd64.deb |
| 6 | +env METRICBEAT_RPM_URL https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-5.5.2-x86_64.rpm |
| 7 | + |
| 8 | +run echo 'APT::Default-Release "buster";' > /etc/apt/apt.conf.d/00apt_default_release |
| 9 | +add sources.list /etc/apt/sources.list |
| 10 | + |
| 11 | +run apt-get update -qy |
| 12 | +run apt-get install -y supervisor git sudo ssh \ |
| 13 | + rabbitmq-server easy-rsa sshpass rsync suricata wget jq curl nginx \ |
| 14 | + tigervnc-standalone-server x11-apps xterm postgresql-11 postgresql-client libpq-dev \ |
| 15 | + build-essential python3-dev libffi-dev libldap2-dev libsasl2-dev libssl-dev virtualenv python3-virtualenv \ |
| 16 | + python2-dev chromium chromium-driver |
| 17 | + |
| 18 | +run mkdir /data /var/run/sshd |
| 19 | +run useradd -m -d /home/admin -p sa1aY64JOY94w admin |
| 20 | +run adduser admin sudo |
| 21 | +run adduser admin www-data |
| 22 | +user admin |
| 23 | +run cat /dev/zero | ssh-keygen -q -N "" |
| 24 | +add config /home/admin/.ssh/config |
| 25 | + |
| 26 | +user root |
| 27 | +# Set VNC password to admin123 |
| 28 | +run mkdir -p /root/.vnc && echo 'ZrO3AaiJtEI=' | base64 -d > /root/.vnc/passwd && chmod 600 /root/.vnc/passwd |
| 29 | + |
| 30 | +run sed -Ei 's/^(\%sudo.*)ALL/\1NOPASSWD:ALL/' /etc/sudoers |
| 31 | + |
| 32 | +run mkdir -p /var/log/celery/ && chown admin:admin /var/log/celery/ |
| 33 | + |
| 34 | +user admin |
| 35 | +run touch /var/log/celery/ansible.log /var/log/celery/beat.log /var/log/celery/django-auth.log /var/log/celery/django-error.log /var/log/celery/django-security.log /var/log/celery/django-sql.log /var/log/celery/django.log |
| 36 | +run touch /home/admin/django-debug.log |
| 37 | +run mkdir -p /home/admin/ansible /home/admin/git-sources /home/admin/backups /home/admin/django \ |
| 38 | + /home/admin/packages/deb /home/admin/packages/rpm /home/admin/upgrade /home/admin/coverage /home/admin/generated |
| 39 | + |
| 40 | +# Add packages for log shipping |
| 41 | +user admin |
| 42 | +run cd /home/admin/packages/deb && wget "$FILEBEAT_DEB_URL" |
| 43 | +run cd /home/admin/packages/rpm && wget "$FILEBEAT_RPM_URL" |
| 44 | +run cd /home/admin/packages/deb && wget "$METRICBEAT_DEB_URL" |
| 45 | +run cd /home/admin/packages/rpm && wget "$METRICBEAT_RPM_URL" |
| 46 | + |
| 47 | +# Install Scirius packages |
| 48 | +run virtualenv -p python3 /home/admin/venv |
| 49 | +add requirements.txt /home/admin/requirements.txt |
| 50 | +run /home/admin/venv/bin/pip install -r /home/admin/requirements.txt --upgrade |
| 51 | +run /home/admin/venv/bin/pip install coverage pylint pylint-django |
| 52 | + |
| 53 | +# Robotframework |
| 54 | +user root |
| 55 | +add requirements-rf.txt /root/requirements-rf.txt |
| 56 | +run virtualenv -p python3 /root/rf/ |
| 57 | +run /root/rf/bin/pip install -r /root/requirements-rf.txt --upgrade |
| 58 | + |
| 59 | +# vnc2flv installation requires python2 |
| 60 | +run virtualenv -p python2 /root/vnc2flv/ |
| 61 | +run /root/vnc2flv/bin/pip install vnc2flv |
| 62 | + |
| 63 | +run mkdir /root/.ssh |
| 64 | +run mkdir -p /etc/ansible |
| 65 | + |
| 66 | +# Postgresql installation |
| 67 | +run mkdir -p /var/run/postgresql/11-main.pg_stat_tmp/ && chown postgres:postgres /var/run/postgresql -R |
| 68 | +user postgres |
| 69 | +run /etc/init.d/postgresql start && \ |
| 70 | + psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'scient';" && \ |
| 71 | + createdb -O docker scient && \ |
| 72 | + /etc/init.d/postgresql stop |
| 73 | +user root |
| 74 | +run echo "host all all 127.0.0.0/8 md5" >> /etc/postgresql/11/main/pg_hba.conf |
| 75 | +run sed -e "s/^log_line_prefix .*/log_line_prefix = '%t [%p]: [%l-1] '/" -i /etc/postgresql/11/main/postgresql.conf |
| 76 | +run (echo 'log_min_duration_statement = 0' && \ |
| 77 | + echo 'log_checkpoints = on' && \ |
| 78 | + echo 'log_connections = on' && \ |
| 79 | + echo 'log_disconnections = on' && \ |
| 80 | + echo 'log_lock_waits = on' && \ |
| 81 | + echo 'log_temp_files = 0' && \ |
| 82 | + echo 'log_autovacuum_min_duration = 0' && \ |
| 83 | + echo 'log_error_verbosity = default') >> /etc/postgresql/11/main/postgresql.conf |
| 84 | + |
| 85 | +# Install pgbadger |
| 86 | +env PGBADGER_VER 11.2 |
| 87 | +run cd /root && wget https://github.com/darold/pgbadger/archive/v${PGBADGER_VER}.tar.gz |
| 88 | +run cd /root && tar xzf v${PGBADGER_VER}.tar.gz && mv pgbadger-${PGBADGER_VER} pgbadger && rm v${PGBADGER_VER}.tar.gz |
| 89 | + |
| 90 | +# nginx configuration |
| 91 | +add nginx.conf /etc/nginx/sites-enabled/default |
| 92 | +run touch /var/log/gunicorn-error.log /var/log/gunicorn-access.log && \ |
| 93 | + chown admin:admin /var/log/gunicorn-error.log /var/log/gunicorn-access.log |
| 94 | + |
| 95 | +run make-cadir /etc/nginx/ca && \ |
| 96 | + cd /etc/nginx/ca && bash -c "./easyrsa init-pki && \ |
| 97 | + echo | ./easyrsa build-ca nopass && \ |
| 98 | + ./easyrsa build-server-full stamus nopass" |
| 99 | +run mkdir -p /etc/nginx/ssl/ && cp /etc/nginx/ca/pki/issued/stamus.crt /etc/nginx/ssl/manager.crt && \ |
| 100 | + cp /etc/nginx/ca/pki/private/stamus.key /etc/nginx/ssl/manager.key |
0 commit comments