diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg index 36f550b..038ba75 100644 --- a/ansible/ansible.cfg +++ b/ansible/ansible.cfg @@ -3,13 +3,14 @@ python_interpreter=/usr/bin/python3 interpreter_python = auto_silent ansible_ssh_private_key_file=../root.key inventory=inventory/ -remote_user=admin_dev +remote_user=ansible #log_path = ./ansible.log #verbosity = 0 display_ok_hosts = true stdout_callback = yaml bin_ansible_callbacks = true deprecation_warnings= false +host_key_checking = False [privilege_escalation] Become = true diff --git a/ansible/base.yaml b/ansible/base.yaml index 727d93d..eed3bb0 100644 --- a/ansible/base.yaml +++ b/ansible/base.yaml @@ -1,10 +1,21 @@ ### Playbook for adding sysupgrade, add user and ssh hardening - name: Base setup - hosts: dev + hosts: all vars: - ansible_user: root + #ansible_user: root roles: - - roles/sysupgrade - - roles/user_add - - roles/ssh_hardening + - name: Setup host + role: roles/init + tags: setup_host + - name: Sysupgrade role + role: roles/sysupgrade + tags: sysupgrade + - name: User_add role + role: roles/user_add + tags: user_add + - name: Ssh_hardening role + role: roles/ssh_hardening + tags: ssh_hardening + tags: + - base diff --git a/ansible/full-install.yaml b/ansible/full-install.yaml index d2327fd..4076788 100644 --- a/ansible/full-install.yaml +++ b/ansible/full-install.yaml @@ -1,11 +1,11 @@ ### Playbook for datatroniq-challenge - name: Full install - hosts: dev + hosts: all become: false gather_facts: false vars: - ansible_user: root + ansible_user: ansible - name: Import base setup import_playbook: base.yaml @@ -21,3 +21,10 @@ import_playbook: k8s-deployments.yaml tags: - k8s-deployments + +- name: Cleanup + hosts: all + roles: + - role: roles/cleanup + tags: + - cleanup diff --git a/ansible/inventory/dev.yaml b/ansible/inventory/dev.yaml index b4ff366..8c714ff 100644 --- a/ansible/inventory/dev.yaml +++ b/ansible/inventory/dev.yaml @@ -1,3 +1,5 @@ dev: hosts: - 10.3.0.100: + 10.3.0.101: + vars: + confdir: "/root/server-configs" diff --git a/ansible/k3s.yaml b/ansible/k3s.yaml index 38439f6..f1b30b4 100644 --- a/ansible/k3s.yaml +++ b/ansible/k3s.yaml @@ -1,7 +1,9 @@ ### Playbook for installing k3s - name: Install k3s - hosts: dev + hosts: all become: yes roles: - - roles/k3s + - name: K3s role + role: roles/k3s + tags: k3s diff --git a/ansible/k8s-deployments.yaml b/ansible/k8s-deployments.yaml index 4491f24..135de18 100644 --- a/ansible/k8s-deployments.yaml +++ b/ansible/k8s-deployments.yaml @@ -1,12 +1,20 @@ ### Playbook for deploying kubernetes resources - name: Install k8s apps - hosts: dev + hosts: all become: yes roles: - - roles/k8s-nginx-ingress - - roles/k8s-cert-manager - - roles/k8s-kube-prom-stack - - roles/k8s-wordpress + - name: Ingress role + role: roles/k8s-nginx-ingress + tags: ingress + - name: Cert-manager role + role: roles/k8s-cert-manager + tags: cert-mangager + - name: Kube-prom role + role: roles/k8s-kube-prom-stack + tags: prom-stack + - name: Wordpress role + role: roles/k8s-wordpress + tags: wordpress tags: - k8s-deployments diff --git a/ansible/roles/k3s/tasks/main.yml b/ansible/roles/k3s/tasks/main.yml index d799b6f..cf5f20b 100644 --- a/ansible/roles/k3s/tasks/main.yml +++ b/ansible/roles/k3s/tasks/main.yml @@ -44,7 +44,7 @@ #- name: Copy k3s.config to server # ansible.builtin.copy: # src: k3s.config -# dest: /root/config.yaml +# dest: "{{ confdir }}"/config.yaml - name: Install k3s (disabled traefik in favour of nginx for modSecurity support) shell: | diff --git a/ansible/roles/k8s-cert-manager/tasks/main.yml b/ansible/roles/k8s-cert-manager/tasks/main.yml index 25b0540..6613c2b 100644 --- a/ansible/roles/k8s-cert-manager/tasks/main.yml +++ b/ansible/roles/k8s-cert-manager/tasks/main.yml @@ -11,17 +11,17 @@ - name: Copy value files ansible.builtin.copy: src: files/values.yaml - dest: ~/cert-manager-values.yaml + dest: "{{ confdir }}"/cert-manager-values.yaml - name: Copy clusterissuer-staging yaml ansible.builtin.copy: src: files/clusterissuer-staging.yaml - dest: ~/ + dest: "{{ confdir }}"/ - name: Copy clusterissuer-prod yaml ansible.builtin.copy: src: files/clusterissuer-prod.yaml - dest: ~/ + dest: "{{ confdir }}"/ - name: Install cert-manager kubernetes.core.helm: @@ -36,17 +36,17 @@ values: installCRDs: true values_files: - /root/cert-manager-values.yaml + "{{ confdir }}"/cert-manager-values.yaml state: present - name: Create staging clusterissuer for letsencrypt kubernetes.core.k8s: kubeconfig: /etc/rancher/k3s/k3s.yaml state: present - src: /root/clusterissuer-staging.yaml + src: "{{ confdir }}"/clusterissuer-staging.yaml - name: Create prod clusterissuer for letsencrypt kubernetes.core.k8s: kubeconfig: /etc/rancher/k3s/k3s.yaml state: present - src: /root/clusterissuer-prod.yaml + src: "{{ confdir }}"/clusterissuer-prod.yaml diff --git a/ansible/roles/k8s-kube-prom-stack/tasks/main.yml b/ansible/roles/k8s-kube-prom-stack/tasks/main.yml index 003f869..e00b3cc 100644 --- a/ansible/roles/k8s-kube-prom-stack/tasks/main.yml +++ b/ansible/roles/k8s-kube-prom-stack/tasks/main.yml @@ -11,12 +11,12 @@ - name: Copy value files ansible.builtin.copy: src: files/values.yaml - dest: /root/prom-values.yaml + dest: "{{ confdir }}"/prom-values.yaml - name: Copy wordpress-dashboard ansible.builtin.copy: src: files/wordpress-dashboard.yaml - dest: /root/ + dest: "{{ confdir }}"/ - name: Install kube-prom-stack kubernetes.core.helm: @@ -29,11 +29,11 @@ wait: yes timeout: 600s values_files: - /root/prom-values.yaml # Path to your custom values file, if needed + "{{ confdir }}"/prom-values.yaml state: present - name: Add wordpress-dashboard to grafana kubernetes.core.k8s: kubeconfig: /etc/rancher/k3s/k3s.yaml state: present - src: /root/wordpress-dashboard.yaml + src: "{{ confdir }}"/wordpress-dashboard.yaml diff --git a/ansible/roles/k8s-nginx-ingress/tasks/main.yml b/ansible/roles/k8s-nginx-ingress/tasks/main.yml index 48e61c4..b2c1d7a 100644 --- a/ansible/roles/k8s-nginx-ingress/tasks/main.yml +++ b/ansible/roles/k8s-nginx-ingress/tasks/main.yml @@ -11,7 +11,7 @@ - name: Copy value files ansible.builtin.copy: src: files/values.yaml - dest: /root/ingress-values.yaml + dest: "{{ confdir }}"/ingress-values.yaml - name: Install ingress-nginx kubernetes.core.helm: @@ -24,6 +24,6 @@ wait: yes timeout: 600s values_files: - /root/ingress-values.yaml + "{{ confdir }}"/ingress-values.yaml state: present diff --git a/ansible/roles/k8s-wordpress/tasks/main.yml b/ansible/roles/k8s-wordpress/tasks/main.yml index 5c97e25..2627322 100644 --- a/ansible/roles/k8s-wordpress/tasks/main.yml +++ b/ansible/roles/k8s-wordpress/tasks/main.yml @@ -11,7 +11,7 @@ - name: Copy value files ansible.builtin.copy: src: files/values.yaml - dest: ~/wordpress-values.yaml + dest: "{{ confdir }}"/wordpress-values.yaml - name: Install wordpress kubernetes.core.helm: @@ -24,6 +24,6 @@ wait: yes timeout: 600s values_files: - /root/wordpress-values.yaml + "{{ confdir }}"/wordpress-values.yaml state: present diff --git a/ansible/roles/ssh_hardening/handlers/main.yml b/ansible/roles/ssh_hardening/handlers/main.yml index 96c3169..0f38ff2 100644 --- a/ansible/roles/ssh_hardening/handlers/main.yml +++ b/ansible/roles/ssh_hardening/handlers/main.yml @@ -4,5 +4,5 @@ - name: restart_sshd ansible.builtin.service: - name: sshd + name: ssh state: restarted