- 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