- hosts: woodpecker_agents vars: - WOODPECKER_VERSION: "0.15.7" - 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 - 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: 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 [Install] WantedBy=multi-user.target - name: Run Woodpecker agent service: name: woodpecker-agent enabled: yes state: started daemon_reload: yes