Compare commits

..

1 commit

Author SHA1 Message Date
11ade2ec4d Add rootful docker for pterodactyl... -,- 2024-11-16 11:48:31 +01:00
48 changed files with 182 additions and 354 deletions

View file

@ -1,6 +0,0 @@
{
"username": "{{ USERNAME }}",
"password": "{{ PASSWORD }}",
"domain": "{{ DOMAIN }}",
"url": "https://infomaniak.com/nic/update?hostname=%HOSTNAME%&myip=%IPADDRESS%&username=%USERNAME%&password=%PASSWORD%"
}

View file

@ -1,42 +0,0 @@
- hosts: localhost
vars_files:
- ../../map.yml
tasks:
- name: "apps/ddupdater : Create ddupdater app-dir"
file:
state: directory
path: "{{ app_dir }}/ddupdater"
owner: root
group: root
mode: "0755"
- name: "apps/ddupdater : Clone ddupdater git repo"
git:
repo: https://git.noveria.org/Tools/ddupdater.git
dest: "{{ app_dir }}/ddupdater"
force: true
- name: "apps/ddupdater : Symlink to bin directory"
file:
state: link
src: "{{ app_dir }}/ddupdater/ddupdater"
dest: "{{ bin_dir }}/ddupdater"
owner: root
group: root
mode: "0755"
- name: "apps/ddupdater : Populate config"
template:
src: files/ddupdater_config.json.j2
dest: "{{ app_dir }}/ddupdater/config.json"
owner: root
group: root
mode: "0644"
vars:
USERNAME: "noveria"
PASSWORD: "{{dyndns_password}}"
DOMAIN: "play.noveria.org"
- name: "apps/ddupdater : Create ddupdater crontab"
cron:
name: "Check public ip and update ddns record every 5 minutes"
state: present
minute: "*/5"
job: "{{ bin_dir }}/ddupdater"
user: root

View file

@ -2,23 +2,23 @@
vars_files: vars_files:
- ../../map.yml - ../../map.yml
tasks: tasks:
- name: "apps/generate-motd : Create generate_motd app-dir" - name: Create generate_motd app-dir
file: file:
state: directory state: directory
path: "{{ app_dir }}/generate_motd" path: "{{ app_dir }}/generate_motd"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "apps/generate-motd : Clone generate-motd git repo" - name: Clone generate-motd git repo
git: git:
repo: https://git.noveria.org/Tools/generate_motd.git repo: https://git.noveria.org/Tools/generate_motd.git
dest: "{{ app_dir }}/generate_motd" dest: "{{ app_dir }}/generate_motd"
force: true force: true
- name: "apps/generate-motd : Symlink to bin directory" - name: Symlink generate_motd
file: file:
state: link state: link
src: "{{ app_dir }}/generate_motd/generate_motd" src: "{{ app_dir }}/generate_motd/generate_motd"
dest: "{{ bin_dir }}/generate_motd" dest: "{{ bin_dir }}/generate_motd"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'

View file

@ -1,4 +1,3 @@
- import_playbook: nsm/init.ansible.yml
- import_playbook: generate-motd/init.ansible.yml - import_playbook: generate-motd/init.ansible.yml
- import_playbook: noveriablcgen/init.ansible.yml - import_playbook: noveriablcgen/init.ansible.yml
- import_playbook: raclette/init.ansible.yml - import_playbook: raclette/init.ansible.yml

View file

@ -1,45 +1,46 @@
- hosts: localhost - hosts: localhost
vars_files: ../../map.yml vars_files:
../../map.yml
tasks: tasks:
- name: "apps/noveriablcgen : Create noveriablcgen app-dir" - name: Create noveriablcgen app-dir
file: file:
state: directory state: directory
path: "{{ app_dir }}/noveriablcgen" path: "{{ app_dir }}/noveriablcgen"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "apps/noveriablcgen : Clone noveriablcgen git-repo" - name: Clone noveriablcgen git-repo
git: git:
repo: https://git.noveria.org/Tools/noveriablcgen.git repo: https://git.noveria.org/Tools/noveriablcgen.git
dest: "{{ app_dir }}/noveriablcgen" dest: "{{ app_dir }}/noveriablcgen"
force: true force: true
- name: "apps/noveriablcgen : Symlink to bin directory" - name: Symlink noveriablcgen
file: file:
state: link state: link
src: "{{ app_dir }}/noveriablcgen/noveriablcgen" src: "{{ app_dir }}/noveriablcgen/noveriablcgen"
dest: "{{ bin_dir }}/noveriablcgen" dest: "{{ bin_dir }}/noveriablcgen"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "apps/noveriablcgen : Create noveriablcgen etc dir" - name: noveriablcgen etc dir
file: file:
state: directory state: directory
path: "{{ etc_dir }}/noveriablcgen" path: "{{ etc_dir }}/noveriablcgen"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "apps/noveriablcgen : Get ROOT_UUID" - name: Get ROOT_UUID
shell: | shell: |
lsblk -o LABEL,UUID | grep ROOT | awk '{print $2}' lsblk -o LABEL,UUID | grep ROOT | awk '{print $2}'
register: root_uuid register: root_uuid
run_once: true run_once: true
- name: "apps/noveriablcgen : Populate noveriablcgen config" - name: Populate noveriablcgen config
template: template:
src: files/noveriablcgen_config.json.j2 src: files/noveriablcgen_config.json.j2
dest: "{{ etc_dir }}/noveriablcgen/noveriablcgen.json" dest: "{{ etc_dir }}/noveriablcgen/noveriablcgen.json"
owner: root owner: root
group: root group: root
mode: "0644" mode: '0644'
vars: vars:
BTRFS_ROOT: "/btrfs" BTRFS_ROOT: "/btrfs"
GRUB_CONFD: "/etc/grub.d" GRUB_CONFD: "/etc/grub.d"

View file

@ -1,3 +0,0 @@
{
"url": "https://git.noveria.org/Novos/ISO"
}

View file

@ -1,38 +0,0 @@
- hosts: localhost
vars_files:
- ../../map.yml
tasks:
- name: "apps/nsm : Create nsm app-dir"
file:
state: directory
path: "{{ app_dir }}/nsm"
owner: root
group: root
mode: "0755"
- name: "apps/nsm : Clone nsm git repo"
git:
repo: https://git.noveria.org/Tools/nsm.git
dest: "{{ app_dir }}/nsm"
force: true
- name: "apps/nsm : Symlink to bin directory"
file:
state: link
src: "{{ app_dir }}/nsm/nsm"
dest: "{{ bin_dir }}/nsm"
owner: root
group: root
mode: "0755"
- name: "apps/nsm : Create nsm config dir"
file:
state: directory
name: "{{ etc_dir }}/nsm"
owner: root
group: root
mode: "0755"
- name: "apps/nsm : Populate nsm config"
template:
src: files/nsm.json
dest: "{{ etc_dir }}/nsm/nsm.json"
owner: root
group: root
mode: "0644"

View file

@ -1,11 +0,0 @@
{
"PODMAN_DIRECTORY": "{{PODMAN_DIRECTORY}}/pms-cli",
"SERVERRUNNERS": {
"paper": "https://api.papermc.io/v2/projects/paper",
"folia": "https://api.papermc.io/v2/projects/folia"
},
"PROXYRUNNERS": {
"waterfall": "https://api.papermc.io/v2/projects/waterfall",
"velocity": "https://api.papermc.io/v2/projects/velocity"
}
}

View file

@ -1,41 +0,0 @@
- hosts: localhost
vars_files:
- ../../map.yml
- ../../podman/map.yml
tasks:
- name: "apps/pms-cli : Create pms-cli app-dir"
file:
state: directory
path: "{{ app_dir }}/pms-cli"
owner: root
group: root
mode: "0755"
- name: "apps/pms-cli : Clone pms-cli git repo"
git:
repo: https://git.noveria.org/Tools/pms-cli.git
dest: "{{ app_dir }}/pms-cli"
force: true
- name: "apps/pms-cli : Symlink to bin directory"
file:
state: link
src: "{{ app_dir }}/pms-cli/pms-cli"
dest: "{{ bin_dir }}/pms-cli"
owner: root
group: root
mode: "0755"
- name: "apps/pms-cli : Create pms-cli config dir"
file:
state: directory
name: "{{ etc_dir }}/pms-cli"
owner: root
group: root
mode: "0755"
- name: "apps/pms-cli : Populate pms-cli Config"
template:
src: files/pms-cli.json.j2
dest: "{{ etc_dir }}/pms-cli/pms-cli.json"
owner: root
group: root
mode: "0644"
vars:
PODMAN_DIRECTORY: "{{ podman_dir }}"

View file

@ -2,19 +2,19 @@
vars_files: vars_files:
- ../../map.yml - ../../map.yml
tasks: tasks:
- name: "apps/raclette : Create raclette app-dir" - name: Create raclette app-dir
file: file:
state: directory state: directory
path: "{{ app_dir }}/raclette" path: "{{ app_dir }}/raclette"
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
- name: "apps/raclette : Clone raclette git-repo" - name: Clone raclette git-repo
git: git:
repo: https://git.noveria.org/Tools/raclette.git repo: https://git.noveria.org/Tools/raclette.git
dest: "{{ app_dir }}/raclette" dest: "{{ app_dir }}/raclette"
force: true force: true
- name: "apps/raclette : Symlink raclette-run to bin directory" - name: Symlink raclette-run
file: file:
state: link state: link
src: "{{ app_dir }}/raclette/raclette-run" src: "{{ app_dir }}/raclette/raclette-run"
@ -22,7 +22,7 @@
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
- name: "apps/raclette : Symlink raclette-call to bin directory" - name: Symlink raclette-call
file: file:
state: link state: link
src: "{{ app_dir }}/raclette/raclette-call" src: "{{ app_dir }}/raclette/raclette-call"
@ -30,14 +30,14 @@
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
- name: "apps/raclette : Create raclette config dir" - name: raclette etc dir
file: file:
state: directory state: directory
path: "{{ etc_dir }}/raclette" path: "{{ etc_dir }}/raclette"
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
- name: "apps/raclette : Populate raclette config" - name: Populate raclette config
template: template:
src: files/raclette_config.json.j2 src: files/raclette_config.json.j2
dest: "{{ etc_dir }}/raclette/raclette.json" dest: "{{ etc_dir }}/raclette/raclette.json"

View file

@ -2,15 +2,15 @@
vars_files: vars_files:
- ../../map.yml - ../../map.yml
tasks: tasks:
- name: "build : Create repo-mgmt dir" - name: Create repo-mgmt dir
file: file:
state: directory state: directory
path: /opt/podman/repo-mgmt path: /opt/podman/repo-mgmt
owner: puser owner: puser
group: puser group: puser
mode: "0755" mode: '0755'
recurse: true recurse: true
- name: "build : Clone repo-mgmt" - name: Clone repo-mgmt
git: git:
repo: https://git.noveria.org/Novos/repo-mgmt.git repo: https://git.noveria.org/Novos/repo-mgmt.git
dest: /opt/podman/repo-mgmt dest: /opt/podman/repo-mgmt

View file

@ -2,28 +2,28 @@
vars_files: vars_files:
- map.yml - map.yml
tasks: tasks:
- name: "directories : Create base directory" - name: Create base directory
file: file:
path: "{{ dir }}" path: "{{ dir }}"
recurse: yes recurse: yes
owner: root owner: root
group: root group: root
state: directory state: directory
- name: "directories : Create bin directory" - name: Create bin directory
file: file:
path: "{{ bin_dir }}" path: "{{ bin_dir }}"
recurse: yes recurse: yes
owner: root owner: root
group: root group: root
state: directory state: directory
- name: "directories : Create etc directory" - name: Create etc directory
file: file:
path: "{{ etc_dir }}" path: "{{ etc_dir }}"
recurse: yes recurse: yes
owner: root owner: root
group: root group: root
state: directory state: directory
- name: "directories : Create apps directory" - name: Create apps directory
file: file:
path: "{{ app_dir }}" path: "{{ app_dir }}"
recurse: yes recurse: yes

2
docker/init.ansible.yml Normal file
View file

@ -0,0 +1,2 @@
- import_playbook: pkg.ansible.yml
- import_playbook: service.ansible.yml

9
docker/pkg.ansible.yml Normal file
View file

@ -0,0 +1,9 @@
- hosts: localhost
tasks:
- name: Install docker package
package:
state: present
name:
- docker
- docker-cli-compose
- docker-openrc

View file

@ -0,0 +1,6 @@
- hosts: localhost
tasks:
- name: Enable docker service
service:
name: docker
enabled: true

View file

@ -2,33 +2,33 @@
vars_files: vars_files:
- map.yml - map.yml
tasks: tasks:
- name: "haproxy/pkg : Install haproxy pkg" - name: Install haproxy pkg
package: package:
state: present state: present
name: name:
- haproxy - haproxy
- name: "haproxy/pkg : Setup haproxy conf.d directory" - name: Setup haproxy conf.d directory
file: file:
state: directory state: directory
path: /etc/haproxy/conf.d path: /etc/haproxy/conf.d
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "haproxy/pkg : Populate haproxy config" - name: Populate haproxy config
template: template:
src: files/haproxy_config.j2 src: files/haproxy_config.j2
dest: /etc/haproxy/haproxy.cfg dest: /etc/haproxy/haproxy.cfg
owner: root owner: root
group: root group: root
mode: "0644" mode: '0644'
vars: vars:
IPV4: "{{ ansible_default_ipv4.address }}" IPV4: "{{ ansible_default_ipv4.address }}"
- name: "haproxy/pkg : Populate haproxy rc-script" - name: Populate haproxy rc-script
template: template:
src: files/haproxy_rcscript.initd.j2 src: files/haproxy_rcscript.initd.j2
dest: /etc/init.d/haproxy dest: /etc/init.d/haproxy
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
vars: vars:
CONF_DIR: "{{ conf_dir }}" CONF_DIR: "{{ conf_dir }}"

View file

@ -1,6 +1,6 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "haproxy/service : Enable haproxy service" - name: Enable haproxy service
service: service:
name: haproxy name: haproxy
state: started state: started

View file

@ -1,15 +0,0 @@
- hosts: localhost
tasks:
- name: "migrations : Remove pterodactyl"
package:
state: absent
name:
- pterodactyl-panel-compose
- pterodactyl-wings
- name: "migrations : Remove Docker"
package:
state: absent
name:
- docker
- docker-cli-compose
- docker-openrc

View file

@ -1,6 +1,6 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "mysql/directory : Create mysql directory" - name: Create mysql directory
file: file:
path: /var/lib/mysql path: /var/lib/mysql
recurse: yes recurse: yes

View file

@ -1,7 +0,0 @@
[client]
user=root
password={{MYSQL_ROOT_PASSWORD}}
[mysql]
user=root
password={{MYSQL_ROOT_PASSWORD}}

View file

@ -1,4 +1,3 @@
- import_playbook: pkg.ansible.yml - import_playbook: pkg.ansible.yml
- import_playbook: directory.ansible.yml - import_playbook: directory.ansible.yml
- import_playbook: service.ansible.yml - import_playbook: service.ansible.yml
- import_playbook: secure.ansible.yml

View file

@ -1,10 +1,9 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "mysql/pkg : Install mariadb package" - name: Install mariadb package
package: package:
state: present state: present
name: name:
- mariadb - mariadb
- mariadb-client - mariadb-client
- mariadb-openrc - mariadb-openrc
- py3-mysqlclient

View file

@ -1,46 +0,0 @@
- hosts: localhost
tasks:
- name: "mysql/secure : Test if mysql has been secured"
stat:
path: /var/lib/mysql/.secured
register: MYSQL_SECURED_RESULT
- name: "mysql/secure : Set the root password"
mysql_user: user=root password="{{mysql_root_password}}" host="{{item}}"
with_items:
- 127.0.0.1
- ::1
- localhost
no_log: true
when: not MYSQL_SECURED_RESULT.stat.exists
- name: "mysql/secure : Set root my.cnf"
template:
src: files/my.cnf.j2
dest: /root/.my.cnf
owner: root
group: root
mode: "0644"
vars:
MYSQL_ROOT_PASSWORD: "{{mysql_root_password}}"
no_log: true
- name: "mysql/secure : Delete anonymous MySQL user"
mysql_user: name="" host="{{item}}" state=absent
with_items:
- localhost
- "{{ansible_nodename}}"
no_log: true
when: not MYSQL_SECURED_RESULT.stat.exists
- name: "mysql/secure : Delete Hostname based MySQL user"
mysql_user: user=root host="{{ansible_nodename}}" state=absent
no_log: true
when: not MYSQL_SECURED_RESULT.stat.exists
- name: "mysql/secure : Remove MySQL test database"
mysql_db: name=test state=absent
no_log: true
when: not MYSQL_SECURED_RESULT.stat.exists
- name: "mysql/secure : Create .secured lock file"
file:
state: touch
path: /var/lib/mysql/.secured
owner: root
group: root
when: not MYSQL_SECURED_RESULT.stat.exists

View file

@ -1,14 +1,13 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "mysql/service : Test if directory exists" - name: Test if directory exists
stat: shell: |
path: /var/lib/mysql/mysql test /var/lib/mysql/mysql
register: MYSQL_DIRECTORY_RESULT register: MYSQL_DIRECTORY_EXISTS
ignore_errors: true - name: MariaDB setup
- name: "mysql/service : Setup mariadb"
shell: | shell: |
/etc/init.d/mariadb setup /etc/init.d/mariadb setup
when: not MYSQL_DIRECTORY_RESULT.stat.exists when: not MYSQL_DIRECTORY_EXISTS
- name: Enable mariadb service - name: Enable mariadb service
service: service:
name: mariadb name: mariadb

View file

@ -1,27 +1,27 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "network/firewall : Install nftables packages" - name: Install firewall packages
package: package:
name: name:
- nftables - nftables
state: present state: present
- name: "network/firewall : Create nftables.d directory" - name: Create firewall rules directory
file: file:
state: directory state: directory
path: /etc/nftables.d path: /etc/nftables.d
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "network/firewall : Firewall rules" - name: Firewall rules
template: template:
src: files/firewall_rules.nft.j2 src: files/firewall_rules.nft.j2
dest: /etc/nftables.d/noveria.nft dest: /etc/nftables.d/noveria.nft
owner: root owner: root
group: root group: root
mode: "0600" mode: '0600'
vars: vars:
ALLOWED_PORTS: [80, 443] ALLOWED_PORTS: [80, 443, 25565, 51871]
- name: "network/firewall : Enable nftables service" - name: Enable nftables service
service: service:
name: nftables name: nftables
state: started state: started

View file

@ -2,14 +2,14 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "network : Populate interfaces" - name: Populate interfaces
template: template:
src: files/network_interfaces src: files/network_interfaces
dest: /etc/network/interfaces dest: /etc/network/interfaces
owner: root owner: root
group: root group: root
mode: "0644" mode: '0644'
- name: "network : Enable networking service" - name: Enable networking service
service: service:
name: networking name: networking
state: started state: started

View file

@ -1,20 +1,20 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "openssh/config : Populate sshd_config" - name: Populate sshd_config
template: template:
src: files/openssh_sshd_config src: files/openssh_sshd_config
dest: /etc/ssh/sshd_config dest: /etc/ssh/sshd_config
mode: "0644" mode: "0644"
owner: root owner: root
group: root group: root
- name: "openssh/config : Configure root .ssh directory" - name: Configure root .ssh directory
file: file:
state: directory state: directory
path: /root/.ssh path: /root/.ssh
mode: "0755" mode: "0755"
owner: root owner: root
group: root group: root
- name: "openssh/config : Configure root authorized_keys" - name: Configure root authorized_keys
template: template:
src: files/openssh_authorized_keys src: files/openssh_authorized_keys
dest: /root/.ssh/authorized_keys dest: /root/.ssh/authorized_keys

View file

@ -1,6 +1,6 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "openssh/pkg : Install openssh-server package" - name: Install openssh package
package: package:
state: present state: present
name: name:

View file

@ -1,11 +1,11 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "openssh/service : Enable sshd service" - name: Enable openssh service
service: service:
name: sshd name: sshd
state: started state: started
enabled: true enabled: true
- name: "openssh/service : Require networking service" - name: Require lo interface
lineinfile: lineinfile:
state: present state: present
path: /etc/conf.d/sshd path: /etc/conf.d/sshd

View file

@ -1,10 +1,8 @@
- hosts: localhost - hosts: localhost
vars_files:
- map.yml
tasks: tasks:
- name: "podman/directory : Create podman directory" - name: Create podman directory
file: file:
path: "{{ podman_dir }}" path: /opt/podman
owner: puser owner: puser
group: puser group: puser
state: directory state: directory

View file

@ -1 +0,0 @@
podman_dir: /opt/podman

View file

@ -1,6 +1,6 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "podman/pkg : Install required packages" - name: Install podman package
package: package:
state: present state: present
name: name:

View file

@ -1,15 +1,15 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "podman/rootless : Set cgroup mode to unified" - name: cgroup mode
lineinfile: lineinfile:
path: "/etc/rc.conf" path: "/etc/rc.conf"
regexp: "^rc_cgroup_mode.?=.?" regexp: "^rc_cgroup_mode.?=.?"
line: rc_cgroup_mode="unified" line: rc_cgroup_mode="unified"
- name: "podman/rootless : Enable cgroups service" - name: cgroups service
service: service:
name: cgroups name: cgroups
enabled: true enabled: true
- name: "podman/rootless : Activate rootless modules" - name: rootless modules
lineinfile: lineinfile:
state: present state: present
path: /etc/modules path: /etc/modules
@ -18,13 +18,13 @@
tun tun
fuse fuse
ip_tables ip_tables
- name: "podman/rootless : Set puser subgid" - name: subgid
lineinfile: lineinfile:
state: present state: present
path: /etc/subgid path: /etc/subgid
insertafter: EOF insertafter: EOF
line: puser:100000:65536 line: puser:100000:65536
- name: "podman/rootless : Set puser subuid" - name: subuid
lineinfile: lineinfile:
state: present state: present
path: /etc/subuid path: /etc/subuid

View file

@ -1,10 +1,10 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "podman/service : Enable podman service" - name: Enable podman service
service: service:
name: podman name: podman
enabled: true enabled: true
- name: "podman/service : Podman unprivileged ports" - name: Podman unprivileged ports
template: template:
src: files/files_unprivileged_ports src: files/files_unprivileged_ports
dest: /etc/sysctl.d/podman.conf dest: /etc/sysctl.d/podman.conf

View file

@ -1,6 +1,6 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "podman/user : Create puser user" - name: Create puser user
user: user:
uid: 2000 uid: 2000
name: puser name: puser
@ -8,14 +8,14 @@
home: /home/puser home: /home/puser
password: "*" password: "*"
create_home: true create_home: true
- name: "podman/user : Create puser .ssh dir" - name: puser .ssh dir
file: file:
state: directory state: directory
path: /home/puser/.ssh path: /home/puser/.ssh
mode: "0755" mode: "0755"
owner: puser owner: puser
group: puser group: puser
- name: "podman/user : Add puser authorized_keys" - name: puser authorized_keys
template: template:
src: ../openssh/files/openssh_authorized_keys src: ../openssh/files/openssh_authorized_keys
dest: /home/puser/.ssh/authorized_keys dest: /home/puser/.ssh/authorized_keys

View file

@ -0,0 +1,2 @@
- import_playbook: panel.ansible.yml
- import_playbook: wings.ansible.yml

View file

@ -0,0 +1,24 @@
- hosts: localhost
tasks:
- name: Install pterodactyl panel
package:
state: present
name:
- pterodactyl-panel-compose
- name: Enable pterodactyl-panel service
service:
name: pterodactyl-panel-compose
enabled: true
- name: pterodactyl subuid
lineinfile:
state: present
path: /etc/subuid
insertafter: EOF
line: pterodactyl:200000:65536
- name: pterodactyl subgid
lineinfile:
state: present
path: /etc/subgid
insertafter: EOF
line: pterodactyl:200000:65536

View file

@ -0,0 +1,11 @@
- hosts: localhost
tasks:
- name: Install pterodactyl wings
package:
state: present
name:
- pterodactyl-wings
- name: Enable pterodactyl-wings service
service:
name: pterodactyl-wings
enabled: true

View file

@ -2,12 +2,12 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/ansible : Install ansible packages" - name: Install ansible packages
package: package:
name: name:
- ansible - ansible
state: present state: present
- name: "system/ansible : Populate ansible config" - name: Populate ansible config
template: template:
src: files/ansible_config src: files/ansible_config
dest: /etc/ansible/ansible.cfg dest: /etc/ansible/ansible.cfg

View file

@ -2,7 +2,7 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/base : Install base packages" - name: Install base packages
package: package:
state: present state: present
name: name:
@ -10,7 +10,6 @@
- linux-firmware-none - linux-firmware-none
- openjdk17-jre-headless - openjdk17-jre-headless
- jq - jq
- yq-go
- vim - vim
- git - git
- findmnt - findmnt
@ -19,56 +18,49 @@
- curl - curl
- rsync - rsync
- screen - screen
- iproute2-ss - name: Systemupdate script
- chrony
- name: "system/base : Deploy systemupdate script"
template: template:
src: files/base_systemupdate src: files/base_systemupdate
dest: "{{ app_dir }}/systemupdate" dest: "{{ app_dir }}/systemupdate"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "system/base : Create systemupdate symlink to bin" - name: Systemupdate bin-link
file: file:
src: "{{ app_dir }}/systemupdate" src: "{{ app_dir }}/systemupdate"
dest: "{{ bin_dir }}/systemupdate" dest: "{{ bin_dir }}/systemupdate"
owner: root owner: root
group: root group: root
state: link state: link
- name: "system/base : Enable modules Service" - name: Enable modules Service
service: service:
state: started state: started
name: modules name: modules
enabled: true enabled: true
- name: "system/base : Deploy tun permission service-file" - name: Tun permission service-file
template: template:
src: files/base_tun-perm.initd src: files/base_tun-perm.initd
dest: "/etc/init.d/tun-perm" dest: "/etc/init.d/tun-perm"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
- name: "system/base : Enable tun-perm service" - name: Enable tun-perm service
service: service:
state: started state: started
name: tun-perm name: tun-perm
enabled: true enabled: true
- name: "system/base : Enable sysctl service" - name: Enable sysctl service
service: service:
state: started state: started
name: sysctl name: sysctl
enabled: true enabled: true
- name: "system/base : Enable syslog service" - name: Enable syslog service
service: service:
state: started state: started
name: syslog name: syslog
enabled: true enabled: true
- name: "system/base : Enable sysfs service" - name: Enable sysfs service
service: service:
state: started state: started
name: sysfs name: sysfs
enabled: true enabled: true
- name: "system/base : Enable chrony-ntp service"
service:
state: started
name: chronyd
enabled: true

View file

@ -2,7 +2,7 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/bootloader : Install grub, mkinitfs, efibootmgr" - name: Install bootloader pkgs
package: package:
name: name:
- grub - grub
@ -11,22 +11,22 @@
- mkinitfs-doc - mkinitfs-doc
- efibootmgr - efibootmgr
state: present state: present
- name: "system/bootloader : Get current timestamp" - name: Get current timestamp
shell: | shell: |
CURRENT_SUBVOLUME=$(LC_ALL=C btrfs sub show / | LC_ALL=C grep Name: | tr -d '[:space:]'); TIMESTAMP_FORMAT='[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}_[[:digit:]]{2}-[[:digit:]]{2}-[[:digit:]]{2}'; echo "$CURRENT_SUBVOLUME" | grep -Eo "$TIMESTAMP_FORMAT" CURRENT_SUBVOLUME=$(LC_ALL=C btrfs sub show / | LC_ALL=C grep Name: | tr -d '[:space:]'); TIMESTAMP_FORMAT='[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}_[[:digit:]]{2}-[[:digit:]]{2}-[[:digit:]]{2}'; echo "$CURRENT_SUBVOLUME" | grep -Eo "$TIMESTAMP_FORMAT"
register: CURRENT_SUBVOLUME_TIMESTAMP register: CURRENT_SUBVOLUME_TIMESTAMP
run_once: true run_once: true
- name: "system/bootloader : Get current timestamp human" - name: Get current timestamp human
shell: | shell: |
CURRENT_SUBVOLUME_TIMESTAMP='{{ CURRENT_SUBVOLUME_TIMESTAMP.stdout }}'; echo "${CURRENT_SUBVOLUME_TIMESTAMP:0:10} ${CURRENT_SUBVOLUME_TIMESTAMP:11:2}:${CURRENT_SUBVOLUME_TIMESTAMP:14:2}" CURRENT_SUBVOLUME_TIMESTAMP='{{ CURRENT_SUBVOLUME_TIMESTAMP.stdout }}'; echo "${CURRENT_SUBVOLUME_TIMESTAMP:0:10} ${CURRENT_SUBVOLUME_TIMESTAMP:11:2}:${CURRENT_SUBVOLUME_TIMESTAMP:14:2}"
register: CURRENT_SUBVOLUME_TIMESTAMP_HUMAN register: CURRENT_SUBVOLUME_TIMESTAMP_HUMAN
run_once: true run_once: true
- name: "system/bootloader : Get current kernel version" - name: Get current kernel version
shell: | shell: |
uname -r uname -r
register: KERNEL_VERSION register: KERNEL_VERSION
run_once: true run_once: true
- name: "system/bootloader : Add features to mkinitfs config" - name: mkinitfs config
lineinfile: lineinfile:
path: "/etc/mkinitfs/mkinitfs.conf" path: "/etc/mkinitfs/mkinitfs.conf"
regexp: "^features.?=.?" regexp: "^features.?=.?"
@ -34,7 +34,7 @@
owner: root owner: root
group: root group: root
mode: "0644" mode: "0644"
- name: "system/bootloader : Generate os-release file" - name: os-release file
template: template:
src: files/bootloader_os-release.j2 src: files/bootloader_os-release.j2
dest: "/etc/os-release" dest: "/etc/os-release"
@ -42,16 +42,16 @@
group: root group: root
mode: "0644" mode: "0644"
vars: vars:
OS_VERSION: "{{ release_version }}" OS_VERSION: "2406"
OS_RELEASE_INFO: '"Timestamp: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }} | Kernel: {{ KERNEL_VERSION.stdout }}"' OS_RELEASE_INFO: '"Timestamp: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }} | Kernel: {{ KERNEL_VERSION.stdout }}"'
- name: "system/bootloader : Create motd directory" - name: Motd Directory
file: file:
name: /etc/motd.d name: /etc/motd.d
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
state: directory state: directory
- name: "system/bootloader : Place Noveria motd file in motd directory" - name: Motd
template: template:
src: files/bootloader_00_noveria.motd.j2 src: files/bootloader_00_noveria.motd.j2
dest: /etc/motd.d/00_noveria.motd dest: /etc/motd.d/00_noveria.motd
@ -59,10 +59,10 @@
group: root group: root
mode: "0644" mode: "0644"
vars: vars:
OS_NAME: "Novos {{ release_version }}" OS_NAME: "Novos 2406"
OS_RELEASE_INFO: "Timestamp: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }} | Kernel: {{ KERNEL_VERSION.stdout }}" OS_RELEASE_INFO: "Timestamp: {{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }} | Kernel: {{ KERNEL_VERSION.stdout }}"
OS_ISSUE_URL: "https://git.noveria.org/Novos/ISO/issues" OS_ISSUE_URL: "https://git.noveria.org/Novos/ISO/issues"
- name: "system/bootloader : Place issue file" - name: Issue
template: template:
src: files/bootloader_issue.j2 src: files/bootloader_issue.j2
dest: /etc/issue dest: /etc/issue
@ -70,5 +70,5 @@
group: root group: root
mode: "0644" mode: "0644"
vars: vars:
OS_NAME: "Novos {{ release_version }}" OS_NAME: "Novos 2406"
OS_RELEASE_INFO: "{{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }}" OS_RELEASE_INFO: "{{ CURRENT_SUBVOLUME_TIMESTAMP_HUMAN.stdout }}"

View file

@ -2,43 +2,43 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/disks : Install required filesystem packages" - name: Install Disks packages
package: package:
name: name:
- btrfs-progs - btrfs-progs
state: present state: present
- name: "system/disks : Append btrfs module" - name: Append btrfs module
lineinfile: lineinfile:
state: present state: present
path: /etc/modules path: /etc/modules
insertafter: EOF insertafter: EOF
line: btrfs line: btrfs
- name: "system/disks : Set correct /btrfs permissions" - name: Btrfs mount permission
file: file:
path: "/btrfs" path: "/btrfs"
owner: root owner: root
group: root group: root
mode: "0755" mode: '0755'
state: directory state: directory
- name: "system/disks : Get ROOT_UUID" - name: Get ROOT_UUID
shell: | shell: |
lsblk -o LABEL,UUID | grep ROOT | awk '{print $2}' lsblk -o LABEL,UUID | grep ROOT | awk '{print $2}'
register: root_uuid register: root_uuid
run_once: true run_once: true
- name: "system/disks : Get ESP_UUID" - name: Get ESP_UUID
shell: | shell: |
lsblk -o LABEL,UUID | grep EFI | awk '{print $2}' lsblk -o LABEL,UUID | grep EFI | awk '{print $2}'
register: esp_uuid register: esp_uuid
run_once: true run_once: true
- name: "system/disks : Deploy fstab" - name: Deploy fstab
template: template:
src: files/disks_fstab.j2 src: files/disks_fstab.j2
dest: /etc/fstab dest: /etc/fstab
owner: root owner: root
group: root group: root
mode: "0644" mode: '0644'
vars: vars:
ROOT_UUID: "{{ root_uuid.stdout }}" ROOT_UUID: '{{ root_uuid.stdout }}'
ESP_UUID: "{{ esp_uuid.stdout }}" ESP_UUID: '{{ esp_uuid.stdout }}'
TIMESTAMP: "{{ start_timestamp }}" TIMESTAMP: '{{ start_timestamp }}'
TMPFS_SIZE: "{{ tmpfs_size }}" TMPFS_SIZE: '{{ tmpfs_size }}'

View file

@ -1,5 +1,5 @@
NAME="Novos" NAME="Novos"
ID=novos ID=noveriaos
ID_LIKE=alpine ID_LIKE=alpine
VERSION_ID="{{ OS_VERSION }}" VERSION_ID="{{ OS_VERSION }}"
PRETTY_NAME="Novos {{ OS_VERSION }}" PRETTY_NAME="Novos {{ OS_VERSION }}"

View file

@ -32,5 +32,3 @@ for script in /etc/profile.d/*.sh ; do
fi fi
done done
unset script unset script
nsm check local

View file

@ -1,12 +1,12 @@
- hosts: localhost - hosts: localhost
tasks: tasks:
- name: "system/repositories : Add noveria repository" - name: Add noveria repository
lineinfile: lineinfile:
state: present state: present
path: "/etc/apk/repositories" path: "/etc/apk/repositories"
insertafter: EOF insertafter: EOF
line: https://alpine.noveria.org/v3.21/noveria line: https://alpine.noveria.org/v3.20/noveria
- name: "system/repositories : Get noveria repo pubkey" - name: Get noveria repo pubkey
get_url: get_url:
url: "https://alpine.noveria.org/alpine@noveria.org.pub" url: "https://alpine.noveria.org/alpine@noveria.org.pub"
dest: /etc/apk/keys dest: /etc/apk/keys

View file

@ -2,19 +2,19 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/shell : Install packages" - name: Install shell base-packages
package: package:
name: name:
- zsh - zsh
- alpine-zsh-config - alpine-zsh-config
- bash - bash
state: present state: present
- name: "system/shell : Populate shell profile" - name: Populate shell profile
template: template:
src: files/shell_profile.j2 src: files/shell_profile.j2
dest: /etc/profile dest: /etc/profile
owner: root owner: root
group: root group: root
mode: "0644" mode: '0644'
vars: vars:
CUSTOM_BIN: "{{ bin_dir }}" CUSTOM_BIN: "{{ bin_dir }}"

View file

@ -2,14 +2,14 @@
vars_files: vars_files:
- ../map.yml - ../map.yml
tasks: tasks:
- name: "system/user : Create noveria user" - name: Create Noveria user
user: user:
uid: 1000 uid: 1000
name: noveria name: noveria
shell: /bin/false shell: /bin/false
home: /home/noveria home: /home/noveria
password: "*" password: '*'
- name: "system/user : Edit root user" - name: Edit root user
user: user:
name: root name: root
shell: /bin/zsh shell: /bin/zsh

View file

@ -1,5 +1,3 @@
- name: Run Migrations
import_playbook: migrations.ansible.yml
- name: Setup Directories - name: Setup Directories
import_playbook: directories.ansible.yml import_playbook: directories.ansible.yml
- name: Setup System - name: Setup System
@ -10,16 +8,17 @@
import_playbook: apps/init.ansible.yml import_playbook: apps/init.ansible.yml
- name: Setup SSH - name: Setup SSH
import_playbook: openssh/init.ansible.yml import_playbook: openssh/init.ansible.yml
#- name: Setup MySQL
# import_playbook: mysql/init.ansible.yml
- name: Setup HAProxy - name: Setup HAProxy
import_playbook: haproxy/init.ansible.yml import_playbook: haproxy/init.ansible.yml
when: installation_type == 'proxy' when: installation_type == 'proxy'
- name: Setup Podman Rootless - name: Setup Podman Rootless
import_playbook: podman/init.ansible.yml import_playbook: podman/init.ansible.yml
when: installation_type == 'build' or installation_type == 'gaming' or installation_type == 'container' when: installation_type == 'build'
- name: Setup PMS-CLI - name: Setup Docker Rootful
import_playbook: apps/pms-cli/init.ansible.yml import_playbook: docker/init.ansible.yml
when: installation_type == 'gaming'
- name: Setup Pterodactyl
import_playbook: pterodactyl/init.ansible.yml
when: installation_type == 'gaming' when: installation_type == 'gaming'
- name: Setup repo-mgmt - name: Setup repo-mgmt
import_playbook: build/init.ansible.yml import_playbook: build/init.ansible.yml