소스 검색

changing some shite and implementing the top level playbook so that it can be used to create a vpn server

aeth 9 달 전
부모
커밋
56cc48809b

+ 0 - 0
files/servers/containers/packages.txt → files/development/packages.txt


+ 0 - 0
files/servers/development/packages.txt → files/dns/packages.txt


+ 1 - 0
files/packages.txt

@@ -0,0 +1 @@
+vim

+ 0 - 0
files/servers/dns/packages.txt → files/virtualization/packages.txt


+ 0 - 0
files/servers/vpn/packages.txt → files/vpn/packages.txt


+ 0 - 0
files/workstations/go.txt → files/workstation/go.txt


+ 0 - 0
files/workstations/packages.txt → files/workstation/packages.txt


+ 0 - 0
files/workstations/pip.txt → files/workstation/pip.txt


+ 0 - 22
playbook_configure_desktop.yml

@@ -1,22 +0,0 @@
----
-- name: "Configuring desktops"
-  hosts: "workstations"
-  pre_tasks:
-    - name: "00: Gather facts"
-      ansible.builtin.gather_facts:
-
-  tasks:
-    - name: "10: INSTALL PACKAGES"
-      ansible.builtin.include_tasks: "tasks/tasks_install_packages.yml"
-
-    - name: "00: PRE-TASK clone dotfiles"
-      ansible.builtin.include_tasks: "tasks/tasks_clone_dotfiles.yml"
-    
-    - name: "00: Install vim plug manager"
-      ansible.builtin.include_tasks: "tasks/tasks_install_vimplug.yml"
-
-    - name: "40: Install go binaries"
-      ansible.builtin.include_tasks: "tasks/tasks_go_packages.yml"
-
-    - name: "20: SYSTEM CONFIGURATION NONSENSE"
-      ansible.builtin.include_tasks: "tasks/tasks_machine_configuration.yml"

+ 23 - 0
playbook_configure_machine.yml

@@ -0,0 +1,23 @@
+---
+- name: "Dynamically configuring machine"
+  hosts: "all"
+  pre_tasks:
+    - name: "00: Gather facts"
+      ansible.builtin.gather_facts:
+
+    - name: "10: Assert top level variables"
+      when: "vars[item] is undefined"
+      ansible.builtin.fail:
+        msg: "Required variable: {{ item }} was left undefined."
+      loop:
+       - machine_type
+
+  tasks:
+    - name: "00: DYNAMICALLY EVALUATE RUNTIME VARIABLES"
+      ansible.builtin.include_tasks: "tasks/tasks_variable_validation.yml"
+
+    - name: "10: INSTALL PACKAGES"
+      ansible.builtin.include_tasks: "tasks/tasks_install_packages.yml"
+
+    - name: "20: SYSTEM CONFIGURATION"
+      ansible.builtin.include_tasks: "tasks/tasks_machine_configuration.yml"

+ 1 - 1
tasks/tasks_install_packages.yml

@@ -3,7 +3,7 @@
   ansible.builtin.set_fact:
     packages: "{{ lookup('ansible.builtin.file', '{{ item }}') | trim }}"
   with_first_found:
-    - "files/{{ machine_type }}/{{ use_case }}/packages.txt"
+    - "files/{{ machine_type }}/{{ machine_subtype }}/packages.txt"
     - "files/{{ machine_type }}/packages.txt"
     - "files/packages.txt"
 

+ 2 - 2
tasks/tasks_machine_configuration.yml

@@ -2,7 +2,7 @@
 - name: "00: Determine Machine Configuration Task Set"
   ansible.builtin.include_tasks: "{{ _tasks }}"
   with_first_found:
-    - "tasks/tasks_machine_configuration/{{ machine_type }}/{{ machine_relationship }}/configuration.yml"
-    - "tasks/tasks_machine_configuration/{{ machine_type }}/configuration.yml"
+    - "tasks/tasks_machine_configuration/{{ machine_type }}/{{ machine_subtype }}/task_machine_configuration..yml"
+    - "tasks/tasks_machine_configuration/{{ machine_type }}/task_machine_configuration..yml"
   loop_control:
     loop_var: "_tasks"

+ 0 - 0
tasks/tasks_machine_configuration/vpn/client/configuration.yml → tasks/tasks_machine_configuration/vpn/client/task_machine_configuration.yml


+ 0 - 2
tasks/tasks_machine_configuration/vpn/server/configuration.yml → tasks/tasks_machine_configuration/vpn/server/task_machine_configuration..yml

@@ -17,8 +17,6 @@
 - name: "30: Set VPN configuration variables"
   become: True
   ansible.builtin.set_fact:
-    vpn_network_address: "{{ vpn_network_address }}"
-    vpn_server_port: "{{ vpn_server_port }}"
     vpn_private_key_content: "{{ lookup('ansible.builtin.file', '/etc/wireguard/privatekey') }}"
 
 - name: "40: Create server configuration file"

+ 0 - 5
tasks/tasks_machine_configuration/workstations/configuration.yml

@@ -1,5 +0,0 @@
----
-- name: "00: Set default shell to ZSH"
-  become: True
-  ansible.builtin.command: "chsh -s /usr/bin/zsh aeth"
-  

+ 13 - 0
tasks/tasks_machine_configuration/workstations/task_machine_configuration..yml

@@ -0,0 +1,13 @@
+---
+- name: "00: Set default shell to ZSH"
+  become: True
+  ansible.builtin.command: "chsh -s /usr/bin/zsh aeth"
+
+- name: "10: clone dotfiles"
+  ansible.builtin.include_tasks: "tasks/tasks_clone_dotfiles.yml"
+
+- name: "20: Install vim plug manager"
+  ansible.builtin.include_tasks: "tasks/tasks_install_vimplug.yml"
+
+- name: "30: Install go binaries"
+  ansible.builtin.include_tasks: "tasks/tasks_go_packages.yml"

+ 8 - 0
tasks/tasks_variable_validation.yml

@@ -0,0 +1,8 @@
+---
+- name: "00: Determine Variable Validation task set"
+  ansible.builtin.include_tasks: "{{ _tasks }}"
+  with_first_found:
+    - "tasks/tasks_variable_validation/{{ machine_type }}/{{ machine_subtype }}/task_variable_validation.yml"
+    - "tasks/tasks_variable_validation/{{ machine_type }}/task_variable_validation.yml"
+  loop_control:
+    loop_var: "_tasks"

+ 7 - 0
tasks/tasks_variable_validation/vpn/task_variable_validation.yml

@@ -0,0 +1,7 @@
+---
+- name: "Validate variables"
+  ansible.builtin.assert:
+    that:
+      - machine_subtype is string
+      - vpn_network_address is string
+      - vpn_server_port >= 1 and vpn_server_port <= 65535

+ 6 - 0
tasks/tasks_variable_validation/workstation/task_variable_validation.yml

@@ -0,0 +1,6 @@
+---
+- name: "Validate variables"
+  ansible.builtin.assert:
+    that:
+      - domain_wide_password is string
+      - system_user is string