diff --git a/ansible/inventories/group_vars/ci/public.yaml b/ansible/inventories/group_vars/ci/public.yaml index b153e27..c011ec0 100644 --- a/ansible/inventories/group_vars/ci/public.yaml +++ b/ansible/inventories/group_vars/ci/public.yaml @@ -2,3 +2,5 @@ ssh_user: 2martensAdmin admin_mail: admin@2martens.de ci_domain: ci.2martens.de +gitea_user: 2martens +gitea_url: https://git.2martens.de diff --git a/ansible/inventories/group_vars/git/public.yaml b/ansible/inventories/group_vars/git/public.yaml index 62ef85d..ed93b70 100644 --- a/ansible/inventories/group_vars/git/public.yaml +++ b/ansible/inventories/group_vars/git/public.yaml @@ -1,8 +1,6 @@ --- ssh_user: giteajim host_architecture: amd64 -gitea_user: 2martens -gitea_url: https://git.2martens.de gitea_domain: git.2martens.de gitea_port: 64745 gitea_name: 2martens Gitea diff --git a/ansible/inventories/host_vars/devops/public.yaml b/ansible/inventories/host_vars/devops/public.yaml index cf82098..c106a32 100644 --- a/ansible/inventories/host_vars/devops/public.yaml +++ b/ansible/inventories/host_vars/devops/public.yaml @@ -1,3 +1,2 @@ --- -server_name: production -server_type: cax21 +architecture: arm64 diff --git a/ansible/inventories/host_vars/devops_server/public.yaml b/ansible/inventories/host_vars/devops_server/public.yaml new file mode 100644 index 0000000..cf82098 --- /dev/null +++ b/ansible/inventories/host_vars/devops_server/public.yaml @@ -0,0 +1,3 @@ +--- +server_name: production +server_type: cax21 diff --git a/ansible/inventories/production b/ansible/inventories/production index 9c14a80..469890d 100644 --- a/ansible/inventories/production +++ b/ansible/inventories/production @@ -1,9 +1,9 @@ [setup] -devops ansible_host=localhost ansible_connection=local ansible_python_interpreter=python3 -application_server ansible_host=localhost ansible_connection=local ansible_python_interpreter=python3 +devops_server ansible_host=localhost ansible_connection=local +application_server ansible_host=localhost ansible_connection=local [ci] -devops ansible_host=49.12.69.146 ansible_python_interpreter=python3 +devops ansible_host=49.12.69.146 ansible_python_interpreter=/usr/bin/python3 [git] gitea ansible_host=giteajim.uber.space ansible_python_interpreter=/usr/bin/python @@ -12,4 +12,4 @@ gitea ansible_host=giteajim.uber.space ansible_python_interpreter=/usr/bin/pytho wahlrecht-frontend ansible_host=wahlfron.uber.space ansible_python_interpreter=/usr/bin/python [applications] -api-server ansible_host=49.13.77.70 ansible_python_interpreter=python3 +api-server ansible_host=49.13.77.70 ansible_python_interpreter=/usr/bin/python3 diff --git a/ansible/roles/drone/defaults/main.yaml b/ansible/roles/drone/defaults/main.yaml index edb6f8b..34961d3 100644 --- a/ansible/roles/drone/defaults/main.yaml +++ b/ansible/roles/drone/defaults/main.yaml @@ -3,3 +3,4 @@ drone_max_procs: 1 drone_registration_closed: true drone_server_version: 2.18.0 drone_runner_version: 1.8.3 +drone_cli_version: v1.7.0 diff --git a/ansible/roles/drone/meta/README.md b/ansible/roles/drone/meta/README.md new file mode 100644 index 0000000..6060be9 --- /dev/null +++ b/ansible/roles/drone/meta/README.md @@ -0,0 +1,10 @@ +# Drone role + +### Dependencies +These dependencies are not explicitly configured to allow +usage of role for deployment scenarios where server state +itself is predictable and stable. + +- apache +- letsencrypt +- docker diff --git a/ansible/roles/drone/meta/main.yml b/ansible/roles/drone/meta/main.yml deleted file mode 100644 index 3821742..0000000 --- a/ansible/roles/drone/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -dependencies: - - role: docker - - role: apache - - role: letsencrypt diff --git a/ansible/roles/drone/tasks/apache.yml b/ansible/roles/drone/tasks/apache.yaml similarity index 100% rename from ansible/roles/drone/tasks/apache.yml rename to ansible/roles/drone/tasks/apache.yaml diff --git a/ansible/roles/drone/tasks/docker.yaml b/ansible/roles/drone/tasks/docker.yaml new file mode 100644 index 0000000..1a9176a --- /dev/null +++ b/ansible/roles/drone/tasks/docker.yaml @@ -0,0 +1,23 @@ +--- +- name: Create drone directory + ansible.builtin.file: + state: directory + path: /etc/drone + owner: root + group: root + mode: "755" +- name: Create shared secret + ansible.builtin.command: + cmd: openssl rand -hex 16 + register: drone_rpc_secret + changed_when: false +- name: Copy docker compose file for drone + ansible.builtin.template: + src: etc/drone/docker-compose.yml.j2 + dest: /etc/drone/docker-compose.yml + owner: root + group: root + mode: "644" +- name: Start drone docker container + community.docker.docker_compose: + project_src: /etc/drone diff --git a/ansible/roles/drone/tasks/drone.yaml b/ansible/roles/drone/tasks/drone.yaml new file mode 100644 index 0000000..34e16e8 --- /dev/null +++ b/ansible/roles/drone/tasks/drone.yaml @@ -0,0 +1,20 @@ +--- +- name: Install drone cli + block: + - name: Download drone cli + ansible.builtin.get_url: + url: https://github.com/drone/drone-cli/releases/download/{{ drone_cli_version }}/drone_linux_{{ architecture }}.tar.gz + dest: /home/{{ ssh_user }}/drone_linux_{{ architecture }}.tar.gz + owner: "{{ ssh_user }}" + group: "{{ ssh_user }}" + mode: "644" + - name: Unpack the cli archive + ansible.builtin.unarchive: + dest: /home/{{ ssh_user }} + src: /home/{{ ssh_user }}/drone_linux_{{ architecture }}.tar.gz + remote_src: true + register: drone_unpack + - name: Install drone cli + ansible.builtin.command: + cmd: install -t /usr/local/bin /home/{{ ssh_user }}/drone + changed_when: true diff --git a/ansible/roles/drone/tasks/drone.yml b/ansible/roles/drone/tasks/drone.yml deleted file mode 100644 index 6c2eeb2..0000000 --- a/ansible/roles/drone/tasks/drone.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -- name: Create drone directory - ansible.builtin.file: - state: directory - path: /etc/drone - owner: root - group: root - mode: "755" -- name: Create shared secret - ansible.builtin.command: - cmd: openssl rand -hex 16 - register: drone_rpc_secret - changed_when: false -- name: Copy docker compose file for drone - ansible.builtin.template: - src: etc/drone/docker-compose.yml.j2 - dest: /etc/drone/docker-compose.yml - owner: root - group: root - mode: "644" -- name: Start drone docker container - community.docker.docker_compose: - project_src: /etc/drone -- name: Install drone cli - block: - - name: Download drone cli - ansible.builtin.get_url: - url: https://github.com/drone/drone-cli/releases/latest/download/drone_linux_amd64.tar.gz - dest: /home/{{ ssh_user }}/drone_linux_amd64.tar.gz - owner: "{{ ssh_user }}" - group: "{{ ssh_user }}" - mode: "644" - - name: Unpack the cli archive - ansible.builtin.unarchive: - dest: /home/{{ ssh_user }} - src: /home/{{ ssh_user }}/drone_linux_amd64.tar.gz - remote_src: true - register: drone_unpack - - name: Install drone cli - ansible.builtin.command: - cmd: install -t /usr/local/bin /home/{{ ssh_user }}/drone - changed_when: true diff --git a/ansible/roles/drone/tasks/main.yaml b/ansible/roles/drone/tasks/main.yaml new file mode 100644 index 0000000..bb76137 --- /dev/null +++ b/ansible/roles/drone/tasks/main.yaml @@ -0,0 +1,10 @@ +--- +- name: Set up apache for Drone + ansible.builtin.import_tasks: apache.yaml + tags: apache +- name: Set up docker for Drone + ansible.builtin.import_tasks: docker.yaml + tags: docker +- name: Set up Drone CLI + ansible.builtin.import_tasks: drone.yaml + tags: cli diff --git a/ansible/roles/drone/tasks/main.yml b/ansible/roles/drone/tasks/main.yml deleted file mode 100644 index 49ed36b..0000000 --- a/ansible/roles/drone/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: Set up apache for Drone - ansible.builtin.import_tasks: apache.yml -- name: Set up Drone - ansible.builtin.import_tasks: drone.yml diff --git a/ansible/roles/kafka/meta/README.md b/ansible/roles/kafka/meta/README.md new file mode 100644 index 0000000..8afc3ec --- /dev/null +++ b/ansible/roles/kafka/meta/README.md @@ -0,0 +1,8 @@ +# Kafka role + +### Dependencies +These dependencies are not explicitly configured to allow +usage of role for deployment scenarios where server state +itself is predictable and stable. + +- docker diff --git a/ansible/roles/kafka/meta/main.yaml b/ansible/roles/kafka/meta/main.yaml index cb7d8e0..fdda41b 100644 --- a/ansible/roles/kafka/meta/main.yaml +++ b/ansible/roles/kafka/meta/main.yaml @@ -1,3 +1,3 @@ --- dependencies: - - role: docker + - role: common diff --git a/ansible/roles/spring_boot/tasks/main.yaml b/ansible/roles/spring_boot/tasks/main.yaml index 3881f7e..cbbe13f 100644 --- a/ansible/roles/spring_boot/tasks/main.yaml +++ b/ansible/roles/spring_boot/tasks/main.yaml @@ -2,5 +2,7 @@ - name: Set up nginx for Spring Boot application ansible.builtin.import_tasks: nginx.yaml when: spring_use_nginx + tags: nginx - name: Set up docker-compose ansible.builtin.import_tasks: docker.yaml + tags: docker diff --git a/ansible/setup.yaml b/ansible/setup.yaml index 14f10ec..95139fe 100644 --- a/ansible/setup.yaml +++ b/ansible/setup.yaml @@ -11,12 +11,19 @@ remote_user: "{{ ssh_user }}" roles: - frontend +- name: Set up devops server + hosts: ci + remote_user: "{{ ssh_user }}" + roles: + - apache + - letsencrypt + - docker - name: Set up Drone hosts: ci - gather_facts: false become: true become_method: ansible.builtin.sudo remote_user: "{{ ssh_user }}" + tags: drone roles: - drone - name: Set up Gitea @@ -27,7 +34,6 @@ - gitea - name: Set up application server hosts: applications - gather_facts: false become: true become_method: ansible.builtin.sudo remote_user: "{{ ssh_user }}" @@ -39,9 +45,9 @@ - kafka - name: Set up Spring Boot applications hosts: applications - gather_facts: false become: true become_method: ansible.builtin.sudo remote_user: "{{ ssh_user }}" + tags: springBoot roles: - spring_boot