feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
---
|
||||
# Ansible Playbook: Setup Gitea Actions Runner on Production Server
|
||||
# Purpose: Install and configure Gitea Actions runner for automated deployments
|
||||
# Usage: ansible-playbook -i inventory/production.yml playbooks/setup-gitea-runner.yml
|
||||
|
||||
- name: Setup Gitea Actions Runner for Production Deployments
|
||||
hosts: production_server
|
||||
become: yes
|
||||
vars:
|
||||
gitea_url: "https://git.michaelschiemer.de"
|
||||
runner_name: "production-runner"
|
||||
runner_labels: "docker,production,ubuntu"
|
||||
runner_version: "0.2.6"
|
||||
runner_install_dir: "/opt/gitea-runner"
|
||||
runner_work_dir: "/home/deploy/gitea-runner-work"
|
||||
runner_user: "deploy"
|
||||
|
||||
tasks:
|
||||
- name: Create runner directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ runner_user }}"
|
||||
group: "{{ runner_user }}"
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ runner_install_dir }}"
|
||||
- "{{ runner_work_dir }}"
|
||||
|
||||
- name: Download Gitea Act Runner binary
|
||||
get_url:
|
||||
url: "https://dl.gitea.com/act_runner/{{ runner_version }}/act_runner-{{ runner_version }}-linux-amd64"
|
||||
dest: "{{ runner_install_dir }}/act_runner"
|
||||
mode: '0755'
|
||||
owner: "{{ runner_user }}"
|
||||
|
||||
- name: Check if runner is already registered
|
||||
stat:
|
||||
path: "{{ runner_install_dir }}/.runner"
|
||||
register: runner_config
|
||||
|
||||
- name: Register runner with Gitea (manual step required)
|
||||
debug:
|
||||
msg: |
|
||||
⚠️ MANUAL STEP REQUIRED:
|
||||
|
||||
1. Generate registration token in Gitea:
|
||||
- Navigate to {{ gitea_url }}/admin/runners
|
||||
- Click "Create new runner"
|
||||
- Copy the registration token
|
||||
|
||||
2. SSH to production server and run:
|
||||
sudo -u {{ runner_user }} {{ runner_install_dir }}/act_runner register \
|
||||
--instance {{ gitea_url }} \
|
||||
--token YOUR_REGISTRATION_TOKEN \
|
||||
--name {{ runner_name }} \
|
||||
--labels {{ runner_labels }}
|
||||
|
||||
3. Re-run this playbook to complete setup
|
||||
when: not runner_config.stat.exists
|
||||
|
||||
- name: Create systemd service for runner
|
||||
template:
|
||||
src: ../templates/gitea-runner.service.j2
|
||||
dest: /etc/systemd/system/gitea-runner.service
|
||||
mode: '0644'
|
||||
notify: Reload systemd
|
||||
|
||||
- name: Enable and start Gitea runner service
|
||||
systemd:
|
||||
name: gitea-runner
|
||||
enabled: yes
|
||||
state: started
|
||||
when: runner_config.stat.exists
|
||||
|
||||
- name: Install Docker (if not present)
|
||||
apt:
|
||||
name:
|
||||
- docker.io
|
||||
- docker-compose
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Add runner user to docker group
|
||||
user:
|
||||
name: "{{ runner_user }}"
|
||||
groups: docker
|
||||
append: yes
|
||||
|
||||
- name: Ensure Docker service is running
|
||||
systemd:
|
||||
name: docker
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Create Docker network for builds
|
||||
docker_network:
|
||||
name: gitea-runner-network
|
||||
driver: bridge
|
||||
|
||||
- name: Display runner status
|
||||
debug:
|
||||
msg: |
|
||||
✅ Gitea Runner Setup Complete
|
||||
|
||||
Runner Name: {{ runner_name }}
|
||||
Install Dir: {{ runner_install_dir }}
|
||||
Work Dir: {{ runner_work_dir }}
|
||||
|
||||
Check status: systemctl status gitea-runner
|
||||
View logs: journalctl -u gitea-runner -f
|
||||
|
||||
handlers:
|
||||
- name: Reload systemd
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
Reference in New Issue
Block a user