diff --git a/hosts b/hosts index d835e54..b49fa59 100644 --- a/hosts +++ b/hosts @@ -1,7 +1,7 @@ # Server Names and their IP Addresses Go Here [n0xb0x] -192.168.2.119 +n0xb0x.local [bitb0x] 192.168.2.103 @@ -21,10 +21,10 @@ bitcoin_rpcpassword=rVhfmriXjB8uFekmn7sLvnUiY610JaOx zerotier_network= [n0xb0x:vars] -app_list=['bitcoin.yml'] +hostname=n0xb0x +app_list=['bitcoin.yml','docs.yml'] ansible_user=n0xb0x ansible_password=n0xb0x -coreos=true #registry_url=git.boxxy.net/b0xxer/ registry_url=localhost registry_user= diff --git a/roles/apps/files/docs/Containerfile b/roles/apps/files/docs/Containerfile new file mode 100644 index 0000000..880ebf2 --- /dev/null +++ b/roles/apps/files/docs/Containerfile @@ -0,0 +1,19 @@ +FROM docker.io/almalinux/9-minimal:latest +LABEL maintainer="n0x@n0xb0x.org" + +COPY requirements.txt requirements.txt +RUN microdnf update -y \ + && microdnf install -y \ + ca-certificates \ + python3 \ + python3-pip \ + && microdnf clean all && rm -fr /tmp/* /var/tmp/* \ + && pip3 install -r requirements.txt + +EXPOSE 8081 80 + +WORKDIR /srv + +CMD python -m http.server -d /srv/site 80 + + diff --git a/roles/apps/files/docs/build.sh b/roles/apps/files/docs/build.sh new file mode 100755 index 0000000..1853c0e --- /dev/null +++ b/roles/apps/files/docs/build.sh @@ -0,0 +1 @@ +buildah bud -f Containerfile -t doc-web:1.0 diff --git a/roles/apps/files/docs/mkdocs.yml b/roles/apps/files/docs/mkdocs.yml new file mode 100644 index 0000000..c97182f --- /dev/null +++ b/roles/apps/files/docs/mkdocs.yml @@ -0,0 +1 @@ +site_name: My Docs diff --git a/roles/apps/files/docs/requirements.txt b/roles/apps/files/docs/requirements.txt new file mode 100644 index 0000000..4c430fd --- /dev/null +++ b/roles/apps/files/docs/requirements.txt @@ -0,0 +1,2 @@ +mkdocs==1.5.3 + diff --git a/roles/apps/handlers/main.yml b/roles/apps/handlers/main.yml index 35e7c24..6a7bfb8 100644 --- a/roles/apps/handlers/main.yml +++ b/roles/apps/handlers/main.yml @@ -6,6 +6,11 @@ chdir: ~/Containers/bitcoin cmd: ./build.sh +- name: rebuild_docs + ansible.builtin.shell: + chdir: ~/Containers/docs + cmd: ./build.sh + - name: reload_systemctl ansible.builtin.systemd_service: daemon_reload: true diff --git a/roles/apps/tasks/docs.yml b/roles/apps/tasks/docs.yml new file mode 100644 index 0000000..11bd6d2 --- /dev/null +++ b/roles/apps/tasks/docs.yml @@ -0,0 +1,49 @@ +--- +# tasks file for build +# + +- name: Create ~/srv/docs + ansible.builtin.file: + path: ~/srv/docs/site + state: directory + +- name: Create ~/srv/docs + ansible.builtin.file: + path: ~/srv/docs/docs + state: directory + +- name: Make dir for docs Containers + ansible.builtin.file: + path: ~/Containers/docs + state: directory + +- name: Copy Containerfile Template + ansible.builtin.copy: + src: docs/Containerfile + dest: ~/Containers/docs/Containerfile + notify: rebuild_docs + +- name: Copy build script + ansible.builtin.copy: + src: docs/build.sh + dest: ~/Containers/docs/build.sh + mode: '0700' + notify: rebuild_docs + +- name: Copy requirements.txt file + ansible.builtin.copy: + src: docs/requirements.txt + dest: ~/Containers/docs/requirements.txt + notify: rebuild_docs + +- name: Copy mkdocs.yml file + ansible.builtin.copy: + src: docs/mkdocs.yml + dest: ~/srv/docs/mkdocs.yml + notify: rebuild_docs + +- name: Copy docs-node.container file + ansible.builtin.template: + src: docs/docs-node.container.j2 + dest: /home/{{ ansible_user }}/.config/containers/systemd/docs-node.container + notify: reload_systemctl diff --git a/roles/apps/templates/docs/docs-node.container.j2 b/roles/apps/templates/docs/docs-node.container.j2 new file mode 100644 index 0000000..423fbd9 --- /dev/null +++ b/roles/apps/templates/docs/docs-node.container.j2 @@ -0,0 +1,21 @@ +[Unit] +Description=Documentation Server + +[Container] +Image={{ registry_url }}/doc-web:1.0 +PublishPort=8081:80 + +# Use volume +Volume=/home/{{ansible_user}}/srv/docs:/srv:Z + +[Service] +# Restart service when sleep finishes +Restart=always +# Extend Timeout to allow time to pull the image +TimeoutStartSec=900 +# ExecStartPre flag and other systemd commands can go here, see systemd.unit(5) man page. +# ExecStartPre=/usr/share/mincontainer/setup.sh + +[Install] +# Start by default on boot +WantedBy=multi-user.target default.target diff --git a/roles/config/tasks/main.yml b/roles/config/tasks/main.yml index 871f021..732cb6b 100644 --- a/roles/config/tasks/main.yml +++ b/roles/config/tasks/main.yml @@ -3,6 +3,9 @@ # # +- name: Determine OS variant + register: variant + ansible.builtin.shell: grep VARIANT_ID /etc/os-release | sed 's/VARIANT_ID=//g' - name: Create /etc/sysusers.d directory become: yes become_method: sudo @@ -17,6 +20,7 @@ src: parsec.conf dest: /etc/sysusers.d/parsec.conf setype: etc_t + when: variant.stdout=="iot" - name: Enable Cockpit Service become: yes @@ -33,7 +37,7 @@ service: cockpit permanent: yes state: enabled - when: coreos==True + when: variant.stdout=="iot" - name: Enable Avahi Service become: yes @@ -50,7 +54,7 @@ service: mdns permanent: yes state: enabled - when: coreos==True + when: variant.stdout=="iot" - name: Modify nsswitch file for mdns lookups become: yes @@ -61,11 +65,11 @@ line: 'hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname' notify: restart_avahi -- name: Set hostname to bitb0x +- name: Set hostname to {{ hostname }} become: yes become_method: sudo ansible.builtin.hostname: - name: bitb0x + name: "{{ hostname }}" notify: restart_avahi - name: Enable Zerotier diff --git a/roles/install/tasks/main.yml b/roles/install/tasks/main.yml index 8892980..69137d0 100644 --- a/roles/install/tasks/main.yml +++ b/roles/install/tasks/main.yml @@ -38,7 +38,8 @@ - cockpit-ostree - cockpit-podman - zerotier-one - - python3-firewall + - python3-pip + - caddy - name: Reboot System become: yes