mirror of
https://github.com/2martens/cloud-configuration.git
synced 2026-10-19 17:36:51 +02:00
Finished setup for drone server
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
- name: Add drone HTTP site
|
||||
ansible.builtin.template:
|
||||
src: etc/apache2/sites-available/ansible_domain.conf.j2
|
||||
dest: /etc/apache2/sites-available/{{ ci_domain }}.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "644"
|
||||
force: false
|
||||
register: drone_http
|
||||
- name: Disable default site and enable drone site
|
||||
block:
|
||||
- name: Disable default site
|
||||
ansible.builtin.command:
|
||||
cmd: a2dissite 000-default.conf
|
||||
removes: /etc/apache2/sites-enabled/000-default.conf
|
||||
- name: Enable drone site
|
||||
ansible.builtin.command:
|
||||
cmd: a2ensite {{ ci_domain }}.conf
|
||||
creates: /etc/apache2/sites-enabled/{{ ci_domain }}.conf
|
||||
- name: Check certificate existence
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/letsencrypt/live/{{ ci_domain }}/cert.pem"
|
||||
register: certificate
|
||||
- name: Generate certificates
|
||||
ansible.builtin.command:
|
||||
cmd: >
|
||||
certbot --apache --non-interactive --keep-until-expiring
|
||||
--no-eff-email
|
||||
--email {{ admin_mail }}
|
||||
--redirect
|
||||
--renew-with-new-domains --agree-tos -d {{ ci_domain }}
|
||||
creates: "/etc/letsencrypt/live/{{ ci_domain }}/cert.pem"
|
||||
register: certbot_certificate_created
|
||||
failed_when:
|
||||
- "'Successfully received certificate.' not in certbot_certificate_created.stdout"
|
||||
when:
|
||||
- not certificate.stat.exists
|
||||
- name: Add drone HTTPS site
|
||||
ansible.builtin.template:
|
||||
src: etc/apache2/sites-available/ansible_domain-le-ssl.conf.j2
|
||||
dest: /etc/apache2/sites-available/{{ ci_domain }}-le-ssl.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: "644"
|
||||
- name: Check certificate existence after certbot run
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/letsencrypt/live/{{ ci_domain }}/cert.pem"
|
||||
register: certificate_after_certbot
|
||||
- name: Enable drone HTTPS site
|
||||
ansible.builtin.command:
|
||||
cmd: a2ensite {{ ci_domain }}-le-ssl.conf
|
||||
creates: /etc/apache2/sites-enabled/{{ ci_domain }}-le-ssl.conf
|
||||
notify: Restart apache
|
||||
when:
|
||||
- certificate_after_certbot.stat.exists
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
- name: Create drone directory
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: /etc/drone
|
||||
owner: root
|
||||
group: root
|
||||
mode: "644"
|
||||
- name: Create shared secret
|
||||
ansible.builtin.command:
|
||||
cmd: openssl rand -hex 16
|
||||
register: drone_rpc_secret
|
||||
changed_when: true
|
||||
- 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
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: Set up apache for drone
|
||||
ansible.builtin.import_tasks: apache.yml
|
||||
- name: Set up drone
|
||||
ansible.builtin.import_tasks: drone.yml
|
||||
Reference in New Issue
Block a user