From d723dcf0d7c64f686fc6234a7da9649346d1f56f Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Mon, 6 Jul 2020 22:23:29 +0200 Subject: Renaming deployments to profiles --- profiles/00:01:23:45:67:89.json | 76 +++++++++++++++++++++++++++++++++++ profiles/00:11:22:33:44:55.json | 19 +++++++++ profiles/38:00:25:5a:ed:d5.json | 22 ++++++++++ profiles/applications/awesome.json | 17 ++++++++ profiles/applications/gnome.json | 6 +++ profiles/applications/kde.json | 6 +++ profiles/applications/postgresql.json | 5 +++ profiles/default.json | 17 ++++++++ profiles/desktop_gnome.json | 22 ++++++++++ profiles/desktop_kde.json | 22 ++++++++++ profiles/dns_server.json | 29 +++++++++++++ profiles/gitea.json | 13 ++++++ profiles/local_mirror.json | 31 ++++++++++++++ profiles/minimal_example.json | 5 +++ profiles/pentest.json | 55 +++++++++++++++++++++++++ profiles/router.json | 17 ++++++++ profiles/ubuntu.json | 22 ++++++++++ profiles/vmhost.json | 26 ++++++++++++ profiles/webserver.json | 41 +++++++++++++++++++ profiles/workstation.json | 30 ++++++++++++++ profiles/workstation_aur.json | 37 +++++++++++++++++ profiles/workstation_unattended.json | 6 +++ 22 files changed, 524 insertions(+) create mode 100644 profiles/00:01:23:45:67:89.json create mode 100644 profiles/00:11:22:33:44:55.json create mode 100644 profiles/38:00:25:5a:ed:d5.json create mode 100644 profiles/applications/awesome.json create mode 100644 profiles/applications/gnome.json create mode 100644 profiles/applications/kde.json create mode 100644 profiles/applications/postgresql.json create mode 100644 profiles/default.json create mode 100644 profiles/desktop_gnome.json create mode 100644 profiles/desktop_kde.json create mode 100644 profiles/dns_server.json create mode 100644 profiles/gitea.json create mode 100644 profiles/local_mirror.json create mode 100644 profiles/minimal_example.json create mode 100644 profiles/pentest.json create mode 100644 profiles/router.json create mode 100644 profiles/ubuntu.json create mode 100644 profiles/vmhost.json create mode 100644 profiles/webserver.json create mode 100644 profiles/workstation.json create mode 100644 profiles/workstation_aur.json create mode 100644 profiles/workstation_unattended.json (limited to 'profiles') diff --git a/profiles/00:01:23:45:67:89.json b/profiles/00:01:23:45:67:89.json new file mode 100644 index 00000000..23f83653 --- /dev/null +++ b/profiles/00:01:23:45:67:89.json @@ -0,0 +1,76 @@ +{ + "args" : { + "password" : "0000", + "db_pass" : "", + "include" : "webserver", + "packages" : "openssh sudo openvpn easy-rsa powerdns", + "post" : "stay", + "country" : "SE", + "mirrors" : true + }, + "post" : { + "install database": "postgresql", + "Configure database": { + "su - postgres -c 'psql -c \"CREATE DATABASE pdns;\"'" : {"boot" : true, "debug" : true}, + "su - postgres -c 'psql -c \"CREATE USER pdns WITH ENCRYPTED PASSWORD \\'{db_pass}\\';\"'" : {"boot" : true, "debug" : true}, + "su - postgres -c 'psql -c \"GRANT ALL PRIVILEGES ON DATABASE pdns TO pdns;\"'" : {"boot" : true, "debug" : true}, + "psql -U pdns -d pdns -a -f /usr/share/doc/powerdns/schema.pgsql.sql" : {"boot" : true, "debug" : true}, + "echo '{db_pass}' > /mnt/root/db_pass.txt" : {"no-chroot" : true, "pass-args" : true}, + "echo 'launch=gpgsql' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true}, + "echo 'gpgsql-host=127.0.0.1' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true}, + "echo 'gpgsql-port=5432' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true}, + "echo 'gpgsql-dbname=pdns' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true}, + "echo 'gpgsql-user=pdns' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true}, + "echo 'gpgsql-password=\"{db_pass}\"' >> /mnt/etc/powerdns/pdns.conf" : {"no-chroot" : true, "pass-args" : true} + }, + "Configure OpenVPN" : { + "mkdir -p /etc/openvpn/server/vpn_ccd" : null, + "echo 'port 112' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'proto udp' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'dev tap' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'ca ca.crt' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'cert vpn.hvornum.se.crt' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'key vpn.hvornum.se.key' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'tls-crypt ta.key' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'dh dh.pem' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'server 10.0.50.0 255.255.255.0' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'ifconfig-pool-persist ipp.txt' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'client-config-dir /vpn_ccd' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'client-to-client' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'keepalive 10 120' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'cipher AES-256-CBC' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'tls-version-min 1.2' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'auth SHA512' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'compress lz4-v2' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'push \"compress lz4-v2\"' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'user nobody' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'group nobody' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'persist-key' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'persist-tun' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'verb 4' >> /mnt/etc/openvpn/server/vpn.hvornum.se.conf": {"no-chroot" : true}, + "echo 'push \"dhcp-option DNS 8.8.8.8\"' >> /mnt/etc/openvpn/server/vpn_ccd/nas.hvornum.se": {"no-chroot" : true}, + "echo 'push \"redirect-gateway autolocal bypass-dhcp\"' >> /mnt/etc/openvpn/server/vpn_ccd/nas.hvornum.se": {"no-chroot" : true}, + "echo 'push \"dhcp-option DNS 8.8.8.8\"' >> /mnt/etc/openvpn/server/vpn_ccd/laptop": {"no-chroot" : true}, + "echo 'push \"redirect-gateway def1 bypass-dhcp\"' >> /mnt/etc/openvpn/server/vpn_ccd/laptop": {"no-chroot" : true} + }, + "Create vhost table" : { + "echo 'defaultzone = { docroot \"/srv/http/default\"; index [\"index.html\"]; };' >> /mnt/etc/lighttpd2/vhost.conf": {"no-chroot" : true}, + "echo 'hvornum = { docroot \"/srv/http/default\"; index [\"index.html\"]; };' >> /mnt/etc/lighttpd2/vhost.conf": {"no-chroot" : true}, + "echo 'vhost.map [default => defaultzone, \"hvornum.se\" => hvornum];' >> /mnt/etc/lighttpd2/vhost.conf": {"no-chroot" : true} + }, + "Configure helpers" : { + "echo '[Unit]' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo 'Description=MOTD Updater' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo '[Service]' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo 'ExecStart=/usr/bin/motd_updater' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo '[Install]' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo 'WantedBy=multi-user.target' >> /mnt/etc/systemd/system/issue.service": {"no-chroot" : true}, + "echo '#!/bin/bash' > /mnt/usr/bin/motd_updater": {"no-chroot" : true}, + "echo 'cat /etc/hostname > /etc/issue' >> /mnt/usr/bin/motd_updater": {"no-chroot" : true}, + "hostname -i >> /etc/issue' >> /mnt/usr/bin/motd_updater": {"no-chroot" : true}, + "chmod +x /mnt/usr/bin/motd_updater": {"no-chroot" : true}, + "systemctl enable issue.service": {"boot" : true} + } + } +} diff --git a/profiles/00:11:22:33:44:55.json b/profiles/00:11:22:33:44:55.json new file mode 100644 index 00000000..909b4256 --- /dev/null +++ b/profiles/00:11:22:33:44:55.json @@ -0,0 +1,19 @@ +{ + "args" : { + "include" : "workstation", + "user" : "anton", + "password" : "1111", + "post" : "don't reboot" + }, + "post" : { + "Setup user" : { + "useradd -m -G wheel -s /bin/bash anton" : null, + "sh -c \"echo {user}:{password} | chpasswd\"" : {"pass-args" : true} + }, + "Setup a basic virtual environment": { + "mkdir -p /home/{user}/virts" : {"pass-args" : true}, + "qemu-img create -f qcow2 /home/{user}/virts/test_deploy.qcow2 4G" : {"pass-args" : true}, + "chown -R {user}.{user} /home/{user}/virts" : {"pass-args" : true} + } + } +} diff --git a/profiles/38:00:25:5a:ed:d5.json b/profiles/38:00:25:5a:ed:d5.json new file mode 100644 index 00000000..3a8e1fb8 --- /dev/null +++ b/profiles/38:00:25:5a:ed:d5.json @@ -0,0 +1,22 @@ +{ + "args" : { + "include" : "workstation", + "user" : "anton", + "password" : "" + }, + "post" : { + "Configure laptop" : { + "pacman -Syy --noconfirm opencl-nvidia nvidia xorg-xrandr" : {"pass-args" : true}, + "echo 'XTerm.vt100.faceName: Liberation Mono:size=8,antialias=false' > /mnt/etc/skel/.Xresources" : {"no-chroot" : true}, + "echo 'XTerm.vt100.font: 7x13' >> /mnt/etc/skel/.Xresources" : {"no-chroot" : true}, + "wget https://raw.githubusercontent.com/Torxed/Scripts/master/bash/backlight -O /usr/bin/backlight" : {"pass-args" : true}, + "wget https://raw.githubusercontent.com/Torxed/Scripts/master/bash/bat.sh -O /usr/bin/bat" : {"pass-args" : true}, + "echo 'Section \"Module\"\n\tLoad \"modesetting\"\nEndSection' >> /mnt/etc/X11/xorg.conf" : {"no-chroot" : true}, + "echo 'Section \"Device\"\n\tIdentifier \"nvidia\"\n\tDriver \"nvidia\"\n\tBusID \"1:0:0\"\n\tOption \"AllowEmptyInitialConfiguration\"\nEndSection' >> /mnt/etc/X11/xorg.conf" : {"no-chroot" : true} + }, + "Setup user" : { + "useradd -m -G wheel -s /bin/bash anton" : null, + "sh -c \"echo {user}:{password} | chpasswd\"" : {"pass-args" : true} + } + } +} diff --git a/profiles/applications/awesome.json b/profiles/applications/awesome.json new file mode 100644 index 00000000..42715e6f --- /dev/null +++ b/profiles/applications/awesome.json @@ -0,0 +1,17 @@ +{ + "Installing awesome window manager" : { + "sed -i 's/^twm &/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xclock/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xterm/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^exec xterm/#&/' /etc/X11/xinit/xinitrc" : null, + "sh -c \"echo 'xscreensaver -no-splash &' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'exec {_window_manager}' >> /etc/X11/xinit/xinitrc\"" : {"pass-args" : true}, + "sed -i 's/xterm/xterm -ls -xrm \"XTerm*selectToClipboard: true\"/' /mnt/etc/xdg/awesome/rc.lua" : {"no-chroot" : true}, + "sed -i 's/{ \"open terminal\", terminal/{ \"Chromium\", \"chromium\" },\n &/' /mnt/etc/xdg/awesome/rc.lua" : {"no-chroot" : true}, + "sed -i 's/{ \"open terminal\", terminal/{ \"File handler\", \"nemo\" },\n &/' /mnt/etc/xdg/awesome/rc.lua" : {"no-chroot" : true}, + "sed -i 's/^globalkeys = gears.table.join(/&\n awful.key({ modkey, }, \"l\", function() awful.spawn(\"xscreensaver-command -lock &\") end),\n/' /mnt/etc/xdg/awesome/rc.lua" : {"no-chroot" : true}, + "awk -i inplace -v RS='' '{gsub(/awful.key\\({ modkey,.*?}, \"Tab\",.*?\"client\"}\\),/, \"awful.key({ modkey, }, \"Tab\",\n function ()\n awful.client.focus.byidx(-1)\n if client.focus then\n client.focus:raise()\n end\n end),\n awful.key({ modkey, \"Shift\" }, \"Tab\",\n function ()\n awful.client.focus.byidx(1)\n if client.focus then\n client.focus.raise()\n end\n end),\"); print}' /mnt/etc/xdg/awesome/rc.lua" : {"no-chroot" : true}, + "gsettings set org.nemo.desktop show-desktop-icons false" : null, + "xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search" : null + } +} diff --git a/profiles/applications/gnome.json b/profiles/applications/gnome.json new file mode 100644 index 00000000..4b568544 --- /dev/null +++ b/profiles/applications/gnome.json @@ -0,0 +1,6 @@ +{ + "sed -i 's/^twm &/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xclock/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xterm/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^exec xterm/#&/' /etc/X11/xinit/xinitrc" : null, +} diff --git a/profiles/applications/kde.json b/profiles/applications/kde.json new file mode 100644 index 00000000..4b568544 --- /dev/null +++ b/profiles/applications/kde.json @@ -0,0 +1,6 @@ +{ + "sed -i 's/^twm &/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xclock/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^xterm/#&/' /etc/X11/xinit/xinitrc" : null, + "sed -i 's/^exec xterm/#&/' /etc/X11/xinit/xinitrc" : null, +} diff --git a/profiles/applications/postgresql.json b/profiles/applications/postgresql.json new file mode 100644 index 00000000..05976fd9 --- /dev/null +++ b/profiles/applications/postgresql.json @@ -0,0 +1,5 @@ +{ + "pacman -Syy --noconfirm postgresql" : {"debug" : true}, + "systemctl enable postgresql" : {"debug" : true}, + "su - postgres -c \"initdb -D /var/lib/postgres/data\"" : {"debug" : true} +} \ No newline at end of file diff --git a/profiles/default.json b/profiles/default.json new file mode 100644 index 00000000..cd205f84 --- /dev/null +++ b/profiles/default.json @@ -0,0 +1,17 @@ +{ + "args" : { + "password" : "0000", + "post" : "stay" + }, + "post" : { + "test exit codes" : { + "ssh test@77.80.220.176" : {"events" : { + "continue connecting" : "yes\n", + "s password" : "test\n" + }, + "boot" : true, + "debug" : true + } + } + } +} diff --git a/profiles/desktop_gnome.json b/profiles/desktop_gnome.json new file mode 100644 index 00000000..be239a91 --- /dev/null +++ b/profiles/desktop_gnome.json @@ -0,0 +1,22 @@ +{ + "args" : { + "password" : "", + "_mediaplayer" : "lollypop gstreamer gst-plugins-good gnome-keyring", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_window_manager" : "awesome", + "_keyboard_layout" : "sv-latin1", + "_virtulization" : "qemu ovmf", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm openssh sshfs git {_webbrowser} {_mediaplayer} {_window_manager} {_virtulization} {_filebrowser} dhclient gnu-free-fonts ttf-liberation xorg-server xorg-xrandr xorg-xinit xterm nano wget pulseaudio pulseaudio-alsa pavucontrol smbclient cifs-utils xscreensaver" : {"pass-args" : true} + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "gnome" + } +} diff --git a/profiles/desktop_kde.json b/profiles/desktop_kde.json new file mode 100644 index 00000000..6a15bf30 --- /dev/null +++ b/profiles/desktop_kde.json @@ -0,0 +1,22 @@ +{ + "args" : { + "password" : "", + "_mediaplayer" : "lollypop gstreamer gst-plugins-good gnome-keyring", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_window_manager" : "awesome", + "_keyboard_layout" : "sv-latin1", + "_virtulization" : "qemu ovmf", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm openssh sshfs git {_webbrowser} {_mediaplayer} {_window_manager} {_virtulization} {_filebrowser} dhclient gnu-free-fonts ttf-liberation xorg-server xorg-xrandr xorg-xinit xterm nano wget pulseaudio pulseaudio-alsa pavucontrol smbclient cifs-utils xscreensaver" : {"pass-args" : true} + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "kde" + } +} diff --git a/profiles/dns_server.json b/profiles/dns_server.json new file mode 100644 index 00000000..423fe872 --- /dev/null +++ b/profiles/dns_server.json @@ -0,0 +1,29 @@ +{ + "args" : { + "password" : "0000", + "post" : "stay" + }, + "post" : { + "Installing DNS + Database": { + "pacman -Syy --noconfirm powerdns postgresql" : null + }, + "Setup Database": { + "sh -c \"echo 'postgres:{pin}' | chpasswd\"" : null, + "su - postgres -c \"initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'\"" : null, + "systemctl start postgresql" : null, + "su - postgres -c \"psql -c \\\"CREATE USER pdns WITH PASSWORD 'SomePassword';\\\"\"" : {"debug" : true} + }, + "Setup DNS": { + "sh -c \"echo -e 'launch=gpgsql\ngpgsql-host=127.0.0.1\ngpgsql-user=pdns\ngpgsql-dbname=pdns\ngpgsql-password={PIN}' >> /etc/powerdns/pdns.conf\"" : null, + "psql -U pdns -d pdns -a -f /usr/share/doc/powerdns/schema.pgsql.sql" : null + }, + "Install DNS Entries": { + + }, + "Setup autostarts": { + "systemctl enable dhcpcd" : null, + "systemctl enable postgresql" : null, + "systemctl enable powerdns" : null + } + } +} diff --git a/profiles/gitea.json b/profiles/gitea.json new file mode 100644 index 00000000..efb4c15e --- /dev/null +++ b/profiles/gitea.json @@ -0,0 +1,13 @@ +{ + "args" : { + "password" : "", + "_editor" : "nano", + "_utils" : "openssh git curl dhclient", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm {_utils} {_editor}" : {"pass-args" : true} + } + } +} diff --git a/profiles/local_mirror.json b/profiles/local_mirror.json new file mode 100644 index 00000000..79347f8b --- /dev/null +++ b/profiles/local_mirror.json @@ -0,0 +1,31 @@ +{ + "args" : { + "password" : "0001" + }, + "post" : { + "Setup temp build env": { + "pacman -Syy --noconfirm git" : null, + "useradd -m -G wheel builder" : null, + "sed -i 's/# %wheel ALL=(ALL) NO/%wheel ALL=(ALL) NO/' /etc/sudoers" : null + }, + "install lighttpd2-git": { + "git clone https://aur.archlinux.org/lighttpd2-git.git /home/builder/lighttpd2" : null, + "chown -R builder.builder /home/builder/lighttpd2" : null, + "su - builder -c \"(cd /home/builder/lighttpd2/; /usr/bin/makepkg -s --noconfirm)\"" : null, + "sh -c 'pacman -U --noconfirm /home/builder/lighttpd2/*.xz'" : null + }, + "Remove temp build env": { + "rm -rf /home/builder/lighttpd2" : null, + "sed -i 's/%wheel ALL=(ALL) NO/# %wheel ALL=(ALL) NO/' /etc/sudoers" : null + }, + "Create mirror": { + "mkdir -p /srv/http/archlinux/arch_offline/os/x86_64" : null, + "pacman --noconfirm --dbpath /tmp/ -Syu -w --cachedir /srv/http/archlinux/arch_offline/os/x86_64 base base-devel git python python-systemd awesome xorg-xinit xorg-server xterm nano screen sudo iptables mesa-libgl dhclient dnsmasq darkhttpd openssh sshfs openssl openvpn gcc openvpn rtorrent powerdns postgresql" : null, + "sh -c 'repo-add /srv/http/archlinux/arch_offline/os/x86_64/arch_offline.db.tar.gz /srv/http/archlinux/arch_offline/os/x86_64/*.pkg.tar.xz'" : null + }, + "Setup autostarts": { + "systemctl enable dhcpcd" : null, + "systemctl enable lighttpd2" : null + } + } +} diff --git a/profiles/minimal_example.json b/profiles/minimal_example.json new file mode 100644 index 00000000..ec5e7d1c --- /dev/null +++ b/profiles/minimal_example.json @@ -0,0 +1,5 @@ +{ + "install cmatrix": { + "pacman -Syy --noconfirm cmatrix" : null + } +} diff --git a/profiles/pentest.json b/profiles/pentest.json new file mode 100644 index 00000000..900836ce --- /dev/null +++ b/profiles/pentest.json @@ -0,0 +1,55 @@ +{ + "args" : { + "password" : "", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_window_manager" : "awesome", + "_keyboard_layout" : "sv-latin1", + "_virtulization" : "qemu ovmf", + "_pentest" : "nfs-utils smbmap crackmapexec samba bloodhound responder smbclient openvpn nmap tcpdump python-psutil python-systemd python-pycryptodomex screen", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm openssh sshfs git {_webbrowser} {_window_manager} {_virtulization} {_filebrowser} dhclient gnu-free-fonts ttf-liberation xorg-server xorg-xrandr xorg-xinit xterm nano wget pulseaudio pulseaudio-alsa pavucontrol smbclient cifs-utils xscreensaver" : {"pass-args" : true} + }, + "Setup virtulization" : { + "sh -c \"Description=\\\"Bridge for virtual machines\\\"\nInterface=br0\nConnection=bridge\nBindsToInterfaces=(eno1)\nIP=no\nExecUpPost=\\\"ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set\\\"\nExecDownPre=\\\"IP=dhcp\\\"\n\n## Ignore (R)STP and immediately activate the bridge\nSkipForwardingDelay=yes\"" : null + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "awesome", + "Configure pentest environment" : { + "curl -O https://blackarch.org/strap.sh" : null, + "chmod +x strap.sh" : null, + "sh strap.sh" : {"debug" : true}, + "rm -rf /etc/pacman.d/gnupg" : null, + "pacman-key --init" : null, + "pacman-key --populate" : null, + "pacman-key --populate archlinux" : null, + "pacman-key --update" : null, + "pacman -Syy" : null, + "sh strap.sh" : null, + "sh strap.sh" : {"debug" : true}, + "pacman -Syy --noconfirm {_pentest}" : {"pass-args" : true}, + "touch /mnt/etc/openvpn/client/customer.conf" : {"no-chroot" : true}, + "sed -i 's/After=network.target/After=openvpn-client@customer.service\n&/' /mnt/usr/lib/systemd/system/sshd.service" : {"no-chroot" : true}, + "sed -i 's/ExecStart=/ExecStartPre=\\/usr\\/bin\\/sleep 30\n&/' /mnt/usr/lib/systemd/system/sshd.service" : {"no-chroot" : true}, + "echo 'Interface=eno1\nConnection=ethernet\nIP=dhcp' > /mnt/etc/netctl/LAN" : {"no-chroot" : true}, + "git clone https://github.com/Torxed/dumper.git" : null, + "mkdir /mnt/etc/dumper" : {"no-chroot" : true}, + "cp dumper/config.json /etc/dumper/" : null, + "cp dumper/dumper.py /usr/bin/" : null, + "chmod 440 /etc/dumper/config.json" : null, + "chmod 540 /usr/bin/dumper.py" : null, + "cp dumper/systemd/dumper\\@.service /etc/systemd/system/" : null, + "sed -i 's/#ListenAddress 0.0.0.0/ListenAddress 192.168.0.10/' /mnt/etc/ssh/sshd_config" : {"no-chroot" : true}, + "rm -rf dumper" : null, + "netctl enable LAN" : {"boot" : true}, + "systemctl enable dumper@eno1.service" : null, + "systemctl enable sshd" : null + } + } +} diff --git a/profiles/router.json b/profiles/router.json new file mode 100644 index 00000000..48e038c0 --- /dev/null +++ b/profiles/router.json @@ -0,0 +1,17 @@ +{ + "Setup temp build env": { + "pacman -Syy --noconfirm git" : null, + "useradd -m -G wheel builder" : null, + "sed -i 's/# %wheel ALL=(ALL) NO/%wheel ALL=(ALL) NO/' /etc/sudoers" : null + }, + "install slimdhcp": { + "git clone https://aur.archlinux.org/slimdhcp-git.git /home/builder/slimdhcp" : null, + "chown -R builder.builder /home/builder/slimdhcp" : null, + "su - builder -c \"(cd /home/builder/slimdhcp/; /usr/bin/makepkg -s --noconfirm)\"" : null, + "sh -c 'pacman -U --noconfirm /home/builder/slimdhcp/*.xz'" : null + }, + "Remove temp build env": { + "rm -rf /home/builder/slimdhcp" : null, + "sed -i 's/%wheel ALL=(ALL) NO/# %wheel ALL=(ALL) NO/' /etc/sudoers" : null + } +} diff --git a/profiles/ubuntu.json b/profiles/ubuntu.json new file mode 100644 index 00000000..be239a91 --- /dev/null +++ b/profiles/ubuntu.json @@ -0,0 +1,22 @@ +{ + "args" : { + "password" : "", + "_mediaplayer" : "lollypop gstreamer gst-plugins-good gnome-keyring", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_window_manager" : "awesome", + "_keyboard_layout" : "sv-latin1", + "_virtulization" : "qemu ovmf", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm openssh sshfs git {_webbrowser} {_mediaplayer} {_window_manager} {_virtulization} {_filebrowser} dhclient gnu-free-fonts ttf-liberation xorg-server xorg-xrandr xorg-xinit xterm nano wget pulseaudio pulseaudio-alsa pavucontrol smbclient cifs-utils xscreensaver" : {"pass-args" : true} + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "gnome" + } +} diff --git a/profiles/vmhost.json b/profiles/vmhost.json new file mode 100644 index 00000000..0b2dabec --- /dev/null +++ b/profiles/vmhost.json @@ -0,0 +1,26 @@ +{ + "args" : { + "password" : "", + "_keyboard_layout" : "us", + "_editor" : "vim", + "_window_manager" : "i3", + "_window_manager_dependencies" : "xorg-server xorg-xrandr xorg-xinit xterm", + "_window_manager_utilities" : "slock xscreensaver terminus-font-otb gnu-free-fonts ttf-liberation xsel", + "_virtulization" : "qemu ovmf", + "_utils" : "git htop dhclient curl", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm {_editor} {_utils} {_window_manager} {_window_manager_dependencies} {_window_manager_utilities} {_virtulization}" : {"pass-args" : true} + }, + "Setup virtulization" : { + "sh -c \"Description=\\\"Bridge for virtual machines\\\"\nInterface=br0\nConnection=bridge\nBindsToInterfaces=(eno1)\nIP=no\nExecUpPost=\\\"ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set\\\"\nExecDownPre=\\\"IP=dhcp\\\"\n\n## Ignore (R)STP and immediately activate the bridge\nSkipForwardingDelay=yes\"" : null + }, + "Setup localization" : { + "sh -c \"echo 'setxkbmap us' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "i3" + } +} diff --git a/profiles/webserver.json b/profiles/webserver.json new file mode 100644 index 00000000..6925ab00 --- /dev/null +++ b/profiles/webserver.json @@ -0,0 +1,41 @@ +{ + "args" : { + "password" : "0000", + "post" : "stay" + }, + "post" : { + "Setup webserver build env": { + "pacman -Syy --noconfirm git wget" : null, + "useradd -m -G wheel builder" : null, + "sed -i 's/# %wheel ALL=(ALL) NO/%wheel ALL=(ALL) NO/' /etc/sudoers" : null + }, + "install lighttpd2-git and PHP": { + "git clone https://aur.archlinux.org/lighttpd2-git.git /home/builder/lighttpd2" : null, + "chown -R builder.builder /home/builder/lighttpd2" : null, + "su - builder -c \"(cd /home/builder/lighttpd2/; /usr/bin/makepkg -s --noconfirm)\"" : null, + "sh -c 'pacman -U --noconfirm /home/builder/lighttpd2/*.xz'" : null, + "pacman -Syy --noconfirm spawn-fcgi php-cgi php" : null + }, + "Remove webserver build env": { + "rm -rf /home/builder/lighttpd2" : null, + "sed -i 's/%wheel ALL=(ALL) NO/# %wheel ALL=(ALL) NO/' /etc/sudoers" : null + }, + "Configure lighttpd2": { + "wget https://raw.githubusercontent.com/Torxed/Scripts/master/bash/spawn_php -O /etc/lighttpd2/spawn_php" : null, + "wget https://raw.githubusercontent.com/Torxed/Scripts/master/systemd/php.service -O /etc/systemd/system/php.service" : null, + "chmod +x /etc/lighttpd2/spawn_php" : null, + "touch /etc/lighttpd2/vhost.conf" : null, + "sed -i 's/static/#static/' /mnt/etc/lighttpd2/lighttpd.conf" : {"no-chroot" : true, "debug" : true}, + "sed -i 's/\"mod_dirlist\"/\"mod_dirlist\",\\n\\t\\t\"mod_fastcgi\",\\n\\t\\t\"mod_vhost\"/' /mnt/etc/lighttpd2/lighttpd.conf" : {"no-chroot" : true, "debug" : true}, + "echo 'include \"/etc/lighttpd2/php.conf\";' >> //mnt/etc/lighttpd2/lighttpd.conf": {"no-chroot" : true}, + "echo 'include \"/etc/lighttpd2/vhost.conf\";' >> //mnt/etc/lighttpd2/lighttpd.conf": {"no-chroot" : true}, + "echo 'if phys.path =$ \".php\" { fastcgi \"unix:/tmp/php.sock\"; }' >> /mnt/etc/lighttpd2/php.conf": {"no-chroot" : true}, + "echo '' >> /mnt/srv/http/index.php": {"no-chroot" : true} + }, + "Setup webserver autostarts": { + "systemctl enable dhcpcd" : null, + "systemctl enable lighttpd2" : null, + "systemctl enable php" : null + } + } +} diff --git a/profiles/workstation.json b/profiles/workstation.json new file mode 100644 index 00000000..37216b0e --- /dev/null +++ b/profiles/workstation.json @@ -0,0 +1,30 @@ +{ + "args" : { + "password" : "", + "_keyboard_layout" : "sv-latin1", + "_editor" : "nano", + "_mediaplayer" : "lollypop gstreamer gst-plugins-good gnome-keyring", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_window_manager" : "awesome", + "_window_manager_dependencies" : "xorg-server xorg-xrandr xorg-xinit xterm", + "_window_manager_utilities" : "feh slock xscreensaver terminus-font-otb gnu-free-fonts ttf-liberation xsel", + "_virtulization" : "qemu ovmf", + "_utils" : "openssh sshfs git htop pkgfile scrot dhclient wget smbclient cifs-utils libu2f-host", + "_audio" : "pulseaudio pulseaudio-alsa pavucontrol", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm {_webbrowser} {_utils} {_mediaplayer} {_window_manager} {_window_manager_dependencies} {_window_manager_utilities} {_virtulization} {_filebrowser} {_editor}" : {"pass-args" : true} + }, + "Setup virtulization" : { + "sh -c \"Description=\\\"Bridge for virtual machines\\\"\nInterface=br0\nConnection=bridge\nBindsToInterfaces=(eno1)\nIP=no\nExecUpPost=\\\"ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set\\\"\nExecDownPre=\\\"IP=dhcp\\\"\n\n## Ignore (R)STP and immediately activate the bridge\nSkipForwardingDelay=yes\"" : null + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "awesome" + } +} diff --git a/profiles/workstation_aur.json b/profiles/workstation_aur.json new file mode 100644 index 00000000..d3c26672 --- /dev/null +++ b/profiles/workstation_aur.json @@ -0,0 +1,37 @@ +{ + "pre" : { + "git-branch" : "aur-support" + }, + "args" : { + "password" : "", + "_keyboard_layout" : "sv-latin1", + "_editor" : "nano", + "_mediaplayer" : "lollypop gstreamer gst-plugins-good gnome-keyring", + "_filebrowser" : "nemo gpicview-gtk3", + "_webbrowser" : "chromium", + "_code_editor" : "sublime-text-dev", + "_window_manager" : "awesome", + "_window_manager_dependencies" : "xorg-server xorg-xrandr xorg-xinit xterm", + "_window_manager_utilities" : "feh slock xscreensaver terminus-font-otb gnu-free-fonts ttf-liberation xsel", + "_virtulization" : "qemu ovmf", + "_utils" : "openssh sshfs git htop pkgfile scrot dhclient wget smbclient cifs-utils libu2f-host", + "_audio" : "pulseaudio pulseaudio-alsa pavucontrol", + "post" : "don't reboot" + }, + "post" : { + "Install workstation packages": { + "pacman -Syy --noconfirm {_webbrowser} {_utils} {_mediaplayer} {_window_manager} {_window_manager_dependencies} {_window_manager_utilities} {_virtulization} {_filebrowser} {_editor}" : {"pass-args" : true} + }, + "Install aur packages" : { + "yay -Syy --noconfirm {_code_editor}" : {"pass-args" : true, "runas" : "aibuilder"} + }, + "Setup virtulization" : { + "sh -c \"Description=\\\"Bridge for virtual machines\\\"\nInterface=br0\nConnection=bridge\nBindsToInterfaces=(eno1)\nIP=no\nExecUpPost=\\\"ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set\\\"\nExecDownPre=\\\"IP=dhcp\\\"\n\n## Ignore (R)STP and immediately activate the bridge\nSkipForwardingDelay=yes\"" : null + }, + "Setup loclization" : { + "sh -c \"echo 'setxkbmap se' >> /etc/X11/xinit/xinitrc\"" : null, + "sh -c \"echo 'KEYMAP={_keyboard_layout}\nFONT=lat9w-16' >> /etc/vconsole.conf\"" : {"pass-args" : true} + }, + "Configure desktop environment" : "awesome" + } +} diff --git a/profiles/workstation_unattended.json b/profiles/workstation_unattended.json new file mode 100644 index 00000000..089f7f40 --- /dev/null +++ b/profiles/workstation_unattended.json @@ -0,0 +1,6 @@ +{ + "args" : { + "password" : "0000", + "include" : "workstation" + } +} -- cgit v1.2.3-54-g00ecf