summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2020-03-23 16:30:03 -0400
committerThedro Neely <thedroneely@gmail.com>2020-03-23 16:30:20 -0400
commit93c8aa558ed74a6e2f274114386268c35b100824 (patch)
treecff05af1211d0ebb31c5c3239a24f1d6574e6341
parent813339af65f67835e7934a380764c085f20038df (diff)
downloadplaybooks-93c8aa558ed74a6e2f274114386268c35b100824.tar.gz
playbooks-93c8aa558ed74a6e2f274114386268c35b100824.tar.bz2
playbooks-93c8aa558ed74a6e2f274114386268c35b100824.zip
roles/mkdocs: Add mkdocs
-rw-r--r--inventory/hosts4
-rw-r--r--roles/mkdocs/files/index.md3
-rw-r--r--roles/mkdocs/files/mkdocs.yml4
-rw-r--r--roles/mkdocs/files/supervisord.conf30
-rw-r--r--roles/mkdocs/main.yml119
-rw-r--r--roles/variables.yml5
6 files changed, 165 insertions, 0 deletions
diff --git a/inventory/hosts b/inventory/hosts
index 99749a3..7679808 100644
--- a/inventory/hosts
+++ b/inventory/hosts
@@ -16,6 +16,7 @@ k8s_centos8
postgresql
health_checks
docker_registry
+mkdocs
[isso]
isso.lxc
@@ -26,6 +27,9 @@ healthchecks
[vault]
vault.lxc
+[mkdocs]
+mkdocs.lxc
+
[fathom]
fathom.lxc
diff --git a/roles/mkdocs/files/index.md b/roles/mkdocs/files/index.md
new file mode 100644
index 0000000..44bdf38
--- /dev/null
+++ b/roles/mkdocs/files/index.md
@@ -0,0 +1,3 @@
+# Home Page
+
+Welcome. This wiki contains domain knowledge for the local network.
diff --git a/roles/mkdocs/files/mkdocs.yml b/roles/mkdocs/files/mkdocs.yml
new file mode 100644
index 0000000..59e009c
--- /dev/null
+++ b/roles/mkdocs/files/mkdocs.yml
@@ -0,0 +1,4 @@
+site_name: 'Documentation'
+
+theme:
+ name: 'material'
diff --git a/roles/mkdocs/files/supervisord.conf b/roles/mkdocs/files/supervisord.conf
new file mode 100644
index 0000000..acce2c6
--- /dev/null
+++ b/roles/mkdocs/files/supervisord.conf
@@ -0,0 +1,30 @@
+; Supervisor config file.
+
+[program:mkdocs]
+command=/opt/mkdocs/bin/mkdocs serve --dev-addr=0.0.0.0:8000
+directory=/opt/%(program_name)s
+stopasgroup=true
+stdout_logfile=/var/log/%(program_name)s.log
+stdout_logfile_maxbytes=0
+stdout_logfile_backups=0
+redirect_stderr=true
+user=%(program_name)s
+
+[inet_http_server]
+port = 9100
+username = mkdocs
+password = mkdocs
+
+[unix_http_server]
+file=/run/supervisord.sock
+
+[supervisord]
+logfile=/var/log/supervisord.log
+loglevel=info
+user=root
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///run/supervisord.sock
diff --git a/roles/mkdocs/main.yml b/roles/mkdocs/main.yml
new file mode 100644
index 0000000..78a437e
--- /dev/null
+++ b/roles/mkdocs/main.yml
@@ -0,0 +1,119 @@
+---
+- name: Container Setup
+
+ vars:
+ lxc_base: ansible-alpine3.11
+ lxc_name: mkdocs
+
+ import_playbook: ../common/tasks/lxc.yml
+
+- name: Installing MkDocs
+ hosts: mkdocs
+
+ vars_files:
+ - ../variables.yml
+
+ tasks:
+
+ - name: Ensuring group exists
+ group:
+ name: "{{ mkdocs_user }}"
+ state: present
+
+ - name: Creating user and making home directory
+ user:
+ system: yes
+ state: present
+ name: "{{ mkdocs_user }}"
+ groups: "{{ mkdocs_user }}"
+ home: "{{ mkdocs_home }}"
+
+ - name: Installing the required dependencies
+ apk:
+ state: present
+ update_cache: yes
+ name:
+ - sudo
+ - git
+ - supervisor
+
+ - block:
+
+ - name: Setting up python virtual environment
+ shell: python3 -m venv .
+ args:
+ chdir: "{{ mkdocs_home }}"
+ creates: bin/activate
+
+ - name: Installing application
+ shell: |
+ . bin/activate
+ pip install git+https://github.com/mkdocs/mkdocs@{{ mkdocs_version }}
+ pip install -Iv mkdocs-material=={{ mkdocs_material_version }}
+ args:
+ chdir: "{{ mkdocs_home }}"
+ creates: bin/mkdocs
+
+ - name: Copying config file
+ copy:
+ src: mkdocs.yml
+ dest: "{{ mkdocs_home }}"
+ mode: '0644'
+ register: mkdocsConfig
+
+ - name: Creating document directory
+ file:
+ path: "{{ mkdocs_home }}/docs"
+ state: directory
+
+ - name: Copying index file
+ copy:
+ src: index.md
+ dest: "{{ mkdocs_home }}/docs"
+ mode: '0644'
+
+ become: true
+ become_user: "{{ mkdocs_user }}"
+
+ - name: Copying supervisord config file
+ copy:
+ src: supervisord.conf
+ dest: /etc/supervisord.conf
+ mode: '0644'
+ register: supervisorConfig
+
+ - name: Ensuring supervisord has been started and enabled
+ service:
+ name: supervisord
+ state: started
+ enabled: yes
+
+ - name: Waiting for supervisor to become active
+ wait_for:
+ port: 9100
+
+ - name: Restarting supervisord due to config change
+ service:
+ name: supervisord
+ state: restarted
+ when: supervisorConfig.changed
+
+ - name: Ensuring application has been started
+ supervisorctl:
+ name: mkdocs
+ state: started
+
+ - name: Waiting for application to become active
+ wait_for:
+ port: 8000
+
+ - name: Restarting application due to config change
+ supervisorctl:
+ name: mkdocs
+ state: restarted
+ when: mkdocsConfig.changed
+
+ - name: Testing if webpage exists
+ uri:
+ url: http://0.0.0.0:8000
+ return_content: yes
diff --git a/roles/variables.yml b/roles/variables.yml
index 912e72c..e5f457a 100644
--- a/roles/variables.yml
+++ b/roles/variables.yml
@@ -24,3 +24,8 @@ docker_registry_version: 2.7.1
fathom_user: fathom
fathom_home: "/opt/{{ fathom_user }}"
fathom_version: 1.2.1
+
+mkdocs_user: mkdocs
+mkdocs_home: "/opt/{{ mkdocs_user }}"
+mkdocs_version: 2505a907f4ef6cc4492031faef06192f9eddf0bc
+mkdocs_material_version: 4.6.3