infra/woodpecker-agent.yml

86 lines
2.3 KiB
YAML

- hosts: woodpecker_agents
vars:
- WOODPECKER_VERSION: "2.4.1"
- WOODPECKER_AGENT_SECRET: "{{ vault_woodpecker_agent_secret }}"
tasks:
- name: Basic setup
include_role: name=common
- name: Install requirements
package:
name: docker.io
- name: Download woodpecker agent
get_url:
dest: /root/
url: "https://github.com/woodpecker-ci/woodpecker/releases/download/v{{WOODPECKER_VERSION}}/woodpecker-agent_{{WOODPECKER_VERSION}}_amd64.deb"
mode: 0644
owner: root
group: root
- name: Install woodpecker agent
apt:
deb: "/root/woodpecker-agent_{{WOODPECKER_VERSION}}_amd64.deb"
state: present
notify: restart woodpecker agent
- name: Create woodpecker agent group
group:
name: woodpecker-agent
state: present
- name: Woodpecker agent user
user:
system: true
password: '!'
home: /var/lib/woodpecker-agent
shell: /bin/bash
group: woodpecker-agent
groups: docker
name: woodpecker-agent
- name: Create woodpecker config directory
file:
path: /etc/woodpecker/
state: directory
owner: woodpecker-agent
group: woodpecker-agent
mode: 0750
- name: woodpecker agent systemd service
notify: restart woodpecker agent
copy:
dest: /etc/systemd/system/woodpecker-agent.service
content: |
[Unit]
Description=Woodpecker agent
After=network.target
[Service]
User=woodpecker-agent
Group=woodpecker-agent
WorkingDirectory=/var/lib/woodpecker-agent/
Environment="WOODPECKER_AGENT_SECRET={{ WOODPECKER_AGENT_SECRET }}"
Environment="WOODPECKER_SERVER=woodpecker.afpy.org:9000"
ExecStart=/usr/local/bin/woodpecker-agent
PrivateTmp=true
Restart=always
RestartSec=30s
[Install]
WantedBy=multi-user.target
- name: Run Woodpecker agent
service:
name: woodpecker-agent
enabled: yes
state: started
daemon_reload: yes
handlers:
- name: restart woodpecker agent
systemd:
name: woodpecker-agent
daemon-reload: true
state: restarted