diff --git a/.github/workflows/ansibleOnServer.yml b/.github/workflows/ansibleOnServer.yml index d9ea4e1..78638c1 100644 --- a/.github/workflows/ansibleOnServer.yml +++ b/.github/workflows/ansibleOnServer.yml @@ -35,4 +35,4 @@ jobs: - name: Run Ansible run: | - ansible-playbook -i {{ secrets.SERVER_IP_ADDRESS }}, ${{ inputs.ansible_file }} \ No newline at end of file + ansible-playbook --inventory inventory_for_ci.yml --extra-vars "remote_server_user=${{ secrets.SERVER_USER }} remote_server_password=${{ secrets.SERVER_USER_PASSWORD }}" ${{ inputs.ansible_file }} \ No newline at end of file diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 1683ba3..716355f 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -35,6 +35,7 @@ jobs: uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: latest - name: Build and push image uses: docker/build-push-action@v5 @@ -44,10 +45,10 @@ jobs: tags: ${{ steps.dockerMetadata.outputs.tags }} labels: ${{ steps.dockerMetadata.outputs.labels }} - updateDockerImages: - runs-on: ubuntu-latest - steps: - - name: Update docker images - uses: ./.github/workflows/reusable-workflow.yml@main - with: - ansible_file: 'provision/updateWebsite.yml' +# updateDockerImages: +# runs-on: ubuntu-latest +# steps: +# - name: Update docker images +# uses: ./.github/workflows/ansibleOnServer.yml@main +# with: +# ansible_file: 'provision/updateWebsite.yml' diff --git a/.github/workflows/provisionServer.yml b/.github/workflows/provisionServer.yml index 8310a78..ef632a5 100644 --- a/.github/workflows/provisionServer.yml +++ b/.github/workflows/provisionServer.yml @@ -7,6 +7,14 @@ jobs: runs-on: ubuntu-latest steps: - name: ProvisionServer - uses: ./.github/workflows/reusable-workflow.yml@main + uses: ./.github/workflows/ansibleOnServer.yml@main with: ansible_file: 'provision/provisionServer.yml' + + startContainers: + runs-on: ubuntu-latest + steps: + - name: StartContainers + uses: ./.github/workflows/ansibleOnServer.yml@main + with: + ansible_file: 'provision/startContainers.yml' diff --git a/.github/workflows/startContainersOnServer.yml b/.github/workflows/startContainersOnServer.yml index 8e67f5d..9526836 100644 --- a/.github/workflows/startContainersOnServer.yml +++ b/.github/workflows/startContainersOnServer.yml @@ -7,6 +7,6 @@ jobs: runs-on: ubuntu-latest steps: - name: ProvisionServer - uses: ./.github/workflows/reusable-workflow.yml@main + uses: ./.github/workflows/ansibleOnServer.yml@main with: ansible_file: 'provision/startContainers.yml' diff --git a/docker-compose.yml b/docker-compose.yml index 6853d45..dee0718 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ version: "3" services: website: + image: ghcr.io/jonaskellerer/variation:latest container_name: variation_website build: context: ./website diff --git a/server/provision/inventory.yml b/server/provision/inventory.yml new file mode 100644 index 0000000..41d0632 --- /dev/null +++ b/server/provision/inventory.yml @@ -0,0 +1,10 @@ +all: + hosts: + varilis.de: + ansible_connection: ssh + ansible_user: "{{ remote_server_user }}" + ansible_become: true + vars: + server_docker_users: + - root + - variation diff --git a/server/provision/inventory_for_ci.yml b/server/provision/inventory_for_ci.yml new file mode 100644 index 0000000..5a07fe5 --- /dev/null +++ b/server/provision/inventory_for_ci.yml @@ -0,0 +1,11 @@ +all: + hosts: + varilis.de: + ansible_connection: ssh + ansible_user: "{{ remote_server_user }}" + ansible_become: true + ansible_become_password: "{{ remote_server_password }}" + vars: + server_docker_users: + - root + - variation diff --git a/server/provision/provisionServer.yml b/server/provision/provisionServer.yml index 09dd54a..00e78c0 100644 --- a/server/provision/provisionServer.yml +++ b/server/provision/provisionServer.yml @@ -7,4 +7,5 @@ roles: - role: general - role: docker + - role: copyData - role: nginx diff --git a/server/provision/requirements.yml b/server/provision/requirements.yml new file mode 100644 index 0000000..c4ea1c6 --- /dev/null +++ b/server/provision/requirements.yml @@ -0,0 +1,2 @@ +roles: + - src: geerlingguy.docker diff --git a/server/provision/roles/copyData/tasks/main.yml b/server/provision/roles/copyData/tasks/main.yml new file mode 100644 index 0000000..418b5a6 --- /dev/null +++ b/server/provision/roles/copyData/tasks/main.yml @@ -0,0 +1,9 @@ +--- + +- name: Copy docker-compose.yml + ansible.builtin.copy: + src: ../../../../../docker-compose.yml + dest: /home/{{ remote_server_user }}/docker-compose.yml + owner: "{{ remote_server_user }}" + group: "{{ remote_server_user }}" + mode: 0644 \ No newline at end of file diff --git a/server/provision/roles/general/tasks/main.yml b/server/provision/roles/general/tasks/main.yml index 764bbe4..0018e15 100644 --- a/server/provision/roles/general/tasks/main.yml +++ b/server/provision/roles/general/tasks/main.yml @@ -1,8 +1,5 @@ --- -- name: General setup - become: yes - tasks: - - name: Update all packages to the latest version - apt: - update_cache: yes - upgrade: dist +- name: Update all packages to the latest version + ansible.builtin.apt: + update_cache: yes + upgrade: dist diff --git a/server/provision/roles/startContainers/tasks/main.yml b/server/provision/roles/startContainers/tasks/main.yml index 806553b..43d4174 100644 --- a/server/provision/roles/startContainers/tasks/main.yml +++ b/server/provision/roles/startContainers/tasks/main.yml @@ -1,6 +1,12 @@ --- +- name: Stop containers + ansible.builtin.command: | + docker-compose down + +- name: Pulling containers + ansible.builtin.command: | + docker-compose pull + - name: Start containers ansible.builtin.command: | - docker compose down - docker compose pull - docker compose up -d \ No newline at end of file + docker-compose up -d diff --git a/server/provision/roles/updateWebsite/tasks/main.yml b/server/provision/roles/updateWebsite/tasks/main.yml index 51bba2e..46111df 100644 --- a/server/provision/roles/updateWebsite/tasks/main.yml +++ b/server/provision/roles/updateWebsite/tasks/main.yml @@ -3,4 +3,16 @@ ansible.builtin.command: | docker stop variation_website docker compose pull - docker compose up -d \ No newline at end of file + docker compose up -d + +- name: Stop containers + ansible.builtin.command: | + docker-compose stop variation_website + +- name: Pulling containers + ansible.builtin.command: | + docker-compose pull + +- name: Start containers + ansible.builtin.command: | + docker-compose up -d \ No newline at end of file