Compare commits

...

28 Commits

Author SHA1 Message Date
a5a4c6ab90 usertwist executable 2024-07-30 14:53:12 +02:00
8336445ae8 New version of usertwist 2024-07-30 14:51:51 +02:00
18f2d62a24 revert d84517026d
revert Added usertwist group
2024-07-30 12:02:42 +00:00
f1fea14b41 revert 46f876f5a4
revert Edit usertwist port
2024-07-30 12:02:30 +00:00
e136006c1c revert 70d8e574b9
revert Merge branch 'main' of git.athelas-conseils.fr:Stage/ansible_playbooks
2024-07-30 12:02:16 +00:00
70d8e574b9 Merge branch 'main' of git.athelas-conseils.fr:Stage/ansible_playbooks 2024-07-30 14:00:18 +02:00
46f876f5a4 Edit usertwist port 2024-07-30 14:00:15 +02:00
d84517026d Added usertwist group 2024-07-30 13:46:11 +02:00
cb3785236d Moved roles 2024-07-30 13:40:14 +02:00
98f646a3e6 Roles test 2024-07-30 13:37:30 +02:00
e51d53adbf Edit usertwist port 2024-07-25 16:59:44 +02:00
7a237d6ac9 Merge branch 'main' of git.athelas-conseils.fr:Stage/ansible_playbooks 2024-07-25 14:00:12 +02:00
4a4e754f14 Usertwist has his own user 2024-07-25 14:00:06 +02:00
54228104d7 updated binary 2024-07-25 07:45:28 +02:00
f1dba7be06 Simple error handling with caddy 2024-07-23 14:18:32 +02:00
4609a4e033 Fix iptables config 2024-07-23 13:56:51 +02:00
4269908f8f Setup Git LFS 2024-07-23 13:41:01 +02:00
102c301149 Added gitattributes 2024-07-23 11:55:17 +02:00
9290be8110 Fixed path error for templates 2024-07-23 10:53:34 +02:00
5e7397d7be Removed absolute paths 2024-07-23 10:46:14 +02:00
147b80fd4a Updated bootstrap 2024-07-19 13:40:47 +02:00
e178b4fabf Merge branch 'main' of git.athelas-conseils.fr:Stage/ansible_playbooks 2024-07-19 13:33:12 +02:00
7f70b0379f Added bootstrap 2024-07-19 13:31:39 +02:00
9a5c68d220 binary to LFS 2024-07-19 09:25:03 +02:00
7f29abd84e binary to LFS 2024-07-19 09:23:32 +02:00
ff2751e207 Added web service 2024-07-18 10:04:07 +02:00
7a1e728f2f Patch GPG deprecation errors & Caddy reload error 2024-07-17 09:38:56 +02:00
b4f1d0f6a4 Patch caddy error 2024-07-16 16:19:15 +02:00
10 changed files with 111 additions and 42 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
usertwist filter=lfs diff=lfs merge=lfs -text
files/usertwist filter=lfs diff=lfs merge=lfs -text

30
bootstrap.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/sh
read -p "Enter root password : " password
# Update APT repos
sudo apt update
# Make sure python is installed
sudo apt install python3 python3-pip -y
# Install pipx
sudo apt install pipx -y
pipx ensurepath
# Install Ansible
pipx install --include-deps ansible
# Install sshpass (for ssh password connection) & passlib (for password encryption)
sudo apt install python3-passlib sshpass
pipx inject ansible passlib
# Make sure git & git-lfs are installed and configured
sudo apt install git git-lfs -y
git lfs install
# Clone ansible_playbooks repo
git clone https://git.athelas-conseils.fr/Stage/ansible_playbooks.git
~/.local/bin/ansible-playbook ansible_playbooks/tasks/full_setup.yml -i ansible_playbooks/inventory.ini --extra-vars "ansible_ssh_pass=$password ansible_ssh_common_args='-o StrictHostKeyChecking=no'"

BIN
files/usertwist (Stored with Git LFS) Executable file

Binary file not shown.

10
files/usertwist.service Normal file
View File

@@ -0,0 +1,10 @@
[Unit]
Description=Simple Web Service
[Service]
User=usertwist
Group=usertwist
ExecStart=/usr/local/bin/usertwist
[Install]
WantedBy=multi-user.target

View File

@@ -1,2 +1,2 @@
[athelas]
vps ansible_host=95.217.153.90 ansible_connection=ssh ansible_user=motysten
vps ansible_host=135.181.250.127 ansible_connection=ssh ansible_user=root

View File

@@ -4,44 +4,59 @@
tasks:
- name: Add Caddy GPG Key
ansible.builtin.apt_key:
ansible.builtin.get_url:
url: https://dl.cloudsmith.io/public/caddy/stable/gpg.key
state: present
dest: /etc/apt/keyrings/caddy.asc
mode: '0644'
force: true
- name: Add Caddy Repo
ansible.builtin.apt_repository:
repo: deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main
repo: deb [signed-by=/etc/apt/keyrings/caddy.asc] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main
state: present
- name: Add Caddy Src Repo
ansible.builtin.apt_repository:
repo: deb-src [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main
repo: deb-src [signed-by=/etc/apt/keyrings/caddy.asc] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main
state: present
- name: Install Caddy
ansible.builtin.package:
name: caddy
- name: Creating webserver root folder
ansible.builtin.file:
path: /var/www/html/
state: directory
group: caddy
owner: caddy
- name: Creating webserver root folder
ansible.builtin.file:
path: /var/www/html/index.html
state: present
group: caddy
owner: caddy
- name: Editing Caddyfile
- name: Editing Caddyfile to setup the reverse_proxy
ansible.builtin.template:
src: ~/ansible/templates/Caddyfile.j2
src: ../templates/Caddyfile.j2
dest: /etc/caddy/Caddyfile
- name: Reload Caddy service
- name: Create the usertwist user
ansible.builtin.user:
name: usertwist
group: usertwist
system: true
- name: Put the service binary on the remote server
ansible.builtin.copy:
src: ../files/usertwist
dest: /usr/local/bin
owner: root
group: root
mode: '0755'
- name: Put the service systemd file on the remote server
ansible.builtin.copy:
src: ../files/usertwist.service
dest: /etc/systemd/system
owner: root
group: root
- name: Enable the service systemd unit
ansible.builtin.systemd_service:
name: usertwist
enabled: true
state: started
- name: Restart Caddy service
ansible.builtin.service:
name: caddy
state: reloaded
state: restarted

View File

@@ -10,13 +10,15 @@
- curl
- name: Add Docker GPG Key
ansible.builtin.apt_key:
ansible.builtin.get_url:
url: https://download.docker.com/linux/debian/gpg
state: present
dest: /etc/apt/keyrings/docker.asc
mode: '0644'
force: true
- name: Add Docker repo
ansible.builtin.apt_repository:
repo: deb https://download.docker.com/linux/debian bookworm stable
repo: deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable
state: present
- name: Install Docker

View File

@@ -11,8 +11,8 @@
jump: ACCEPT
destination_ports:
- "22"
- "80"
- "443"
- "80"
- name: Set INPUT policy to DROP
ansible.builtin.iptables:

View File

@@ -9,25 +9,26 @@
- name: Get SSH Private Key
ansible.builtin.fetch:
dest: "~/ansible/keys/"
dest: "../keys/"
src: "~/ssh_key"
flat: true
- name: Get SSH Public Key
ansible.builtin.fetch:
dest: "~/ansible/keys/"
dest: "../keys/"
src: "~/ssh_key.pub"
flat: true
- name: Copy new SSH configuration
ansible.builtin.template:
src: "~/ansible/templates/sshd_config.j2"
src: "../templates/sshd_config.j2"
dest: "/etc/ssh/sshd_config"
- name: Create new user
ansible.builtin.user:
name: "test"
name: "motysten"
groups: "sudo"
shell: /bin/bash
append: true
password: "{{ lookup('password', '/tmp/userpass length=12 encrypt=sha512_crypt') }}"
become: true
@@ -38,8 +39,8 @@
- name: Add SSH public key to remote host
ansible.builtin.authorized_key:
user: "test"
key: "{{ lookup('file', '~/ansible/keys/ssh_key.pub') }}"
user: "motysten"
key: "{{ lookup('file', '../keys/ssh_key.pub') }}"
become: true
- name: Restart SSH Services

View File

@@ -8,18 +8,24 @@
# this machine's public IP, then replace ":80" below with your
# domain name.
athelas.motysten.fr {
# Set this path to your site's directory.
root * /var/www/html
# Enable the static file server.
file_server
poc.athelas.fr {
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
reverse_proxy localhost:8080
# Also edit ACME server
tls {
ca https://acme-staging-v02.api.letsencrypt.org/directory
}
handle_errors {
rewrite * /{err.status_code}
reverse_proxy https://http.cat {
header_up Host {upstream_hostport}
replace_status {err.status_code}
}
}
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
# Refer to the Caddy docs for more information: