From 4496e5db24c4116a437af414d401a7f9199a2a1a Mon Sep 17 00:00:00 2001 From: elhasnaoui <elhasnaoui@MacBook-Pro-Bilal.local> Date: Sat, 18 May 2024 17:35:16 +0200 Subject: [PATCH] Feat: Add CI pipeline to deploy the synapse application --- .gitlab-ci.yml | 39 ++++++++++++++++------ Dockerfile | 14 ++++++++ playbooks/{nginx_install.yml => nginx.yml} | 0 3 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 Dockerfile rename playbooks/{nginx_install.yml => nginx.yml} (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ed9e9c7..21e03d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,35 +2,54 @@ stages: - build - Config - deploy -# TInstall the base Configuration. -Configuration_base: + +# Build the ansible runner (You can Set a local gitlab runner) +build: stage: build + image: docker:latest script: - - ansible-playbook -i inventory.ini main.yml --ask-vault-pass + - docker build -t ansible-container . + +# Install the base Configuration. +Configuration_base: + stage: Config + image: docker:latest + script: + - docker build -t ansible-container . + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/base.yml --ask-vault-pass # Upgrade packages. Upgrade: - stage: build + stage: Config + image: docker:latest script: - - ansible-playbook -i inventory.ini upgrade.yml --ask-vault-pass + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/upgrade.yml --ask-vault-pass # Configure docker Configuration_docker: stage: Config + image: docker:latest script: - - ansible-playbook -i inventory.ini Config.yml --ask-vault-pass + - docker build -t ansible-container . + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/docker.yml --ask-vault-pass # Configure nginx Configuration_nginx: stage: Config + image: docker:latest script: - - ansible-playbook -i inventory.ini nginx.yml --ask-vault-pass + - docker build -t ansible-container . + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/nginx.yml --ask-vault-pass # Configure postgreSQL Configuration_postgreSQL: stage: Config + image: docker:latest script: - - ansible-playbook -i inventory.ini postgresql.yml --ask-vault-pass - + - docker build -t ansible-container . + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/postgresql.yml --ask-vault-pass + # Deploy the synapse app. Configuration_Synapse: stage: deploy + image: docker:latest script: - - ansible-playbook -i inventory.ini synapse.yml --ask-vault-pass \ No newline at end of file + - docker build -t ansible-container . + - docker run -v $(pwd):/ansible ansible-container ansible-playbook -i inventory.ini /ansible/synapse.yml --ask-vault-pass \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f0a0353 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# Dockerfile + +# Use a base image with Python and pip installed +FROM python:3 + +# Install Ansible +RUN pip install ansible + +# Copy your playbook and inventory file into the container +COPY playbooks/* /ansible/* +COPY inventory.ini /ansible/inventory.ini + +# Set the working directory +WORKDIR /ansible diff --git a/playbooks/nginx_install.yml b/playbooks/nginx.yml similarity index 100% rename from playbooks/nginx_install.yml rename to playbooks/nginx.yml -- GitLab