Moving Woodpecker out of my Rasberry Pi.

This commit is contained in:
Julien Palard 2023-03-28 00:08:15 +02:00
parent 9b8c5536f4
commit 2effab3a36
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
3 changed files with 274 additions and 98 deletions

View File

@ -1,50 +1,54 @@
$ANSIBLE_VAULT;1.1;AES256
66356133363737656337653838386162613236333735343431366635323734633535336232653266
3230363039623865333366353264336532386637613639320a373337363362326535336365316634
37356632373936333165646363356536343066393938653734316535303562666431623033376535
3132666337323864330a653138363465383462393936323963386163336634353964386561326337
32376165353534636438346235346230303830383162336165386538323265393363636462653737
62343534646632643661666365356366633963626161373366353636656262323865336138383661
64393063633133353732363861313034393963323633303962303365323863336333343039633932
35303861393235306361316131383361613034343134343834373665313538333031623264386264
33303564373637346531656639653539613064326639373833646163666363643139336636343730
36376339333031616434396534336235653764643137633735333834633465653561633631363365
32666637373734613839633661313438366538303263333731366535396663363334646539623265
63666333313063393935636438323061646236323333346434653532623030636432326337373837
63373739646337666636663930643864633366646135373238303265663831666536303562613631
39336336363130313633313664366530336632353238663732363164643936376139353362363366
33333630663134336662623031303331666237363934343863626163366232613131663462376237
62343638636664633735386264636233303465316364616138343439663338613531636337303364
64376432323163616433343234323537303765303134303034306465623164616165386334633361
39333239396337663731623334353433353631376566303738356335643661303135396134636437
31356566623439323234636231643062383866346530383237643661623634326633396565393564
62643636666262303865393632643063643235393236376130656532383931323366386231356636
63396539353335393864396463386435353335663330656332626430663364623036313163373638
33386237636634306565393338626238343331303533643663323037313838326266393261633539
61316338623236663061333964636362333264393239396235656161623739373234363533303636
61353131323866383736376437333134623633346436343363306132346530313830373464663133
33313166326261313763613332316539393964326464656164663136323464623839643939323832
37663732353061363165306666386532353962373130633563363138363433313763393866633737
37653537663563306665383537366162353965626332343837373666323036613438343264386437
33613065346537373339613637376133643566653466653461636666623539613665306339303134
66643862613332383331323931616533313365386435346339633133373065313339646638313434
36343364346462396337333365623766636165626362643864356234383432316232663866646636
33623361626562353466663262643439383838306165623036353837613665326534353932636133
38643837326362326238306632663533366134636364633633353631373032386361386363346361
32656436643364356336323432653866323235393265613837366430623562376331386633346161
36346234636134366334613338626565613237646462633839303832646637323530613931653264
36373533386266393363326662656439613564643666346338653965623339613232353535363961
36383734653464383336326261383130386134663865636232623738663832653032663531646437
63666362663064663362393637626139613933336162333362366664373639383835633463336330
62356439616361646439626430336437656138343037356637633731633230633435303531633534
30383130373731633630663638626331636135656461373835643262316539393665663632626537
62386331346362393663663634373632663530343565316163383937313433346562336338386266
65633635626337373462386537303535663231383063353162316361396139636565396137616238
35626331613436323561626438356364306566646232333031353066656164373138343731393765
32653365653937613463363433623032373464326137366339356330383637373530663436623763
36333836306366356131303165326666613666376665643864376339623731316365623361663537
36303035323136316264323734396164313539303434386531386134316537653836646233376634
39663939633236626330386635613265626532396132366165666662343039633538333639373166
66306338313263303761363430356630383231633236663864323238356135633162386461313064
31373538646235343066353661353032363166336336396530656233656531616537303139333337
3265
39313334633234303565303330643933663435656331346232653938343139373338323836653031
3938396431396539666537323662313365396561376432630a363962636231383938613833656562
30666162353031653264623665373632386466396435363838393630323030636364646632346237
6131356432393339300a383466333033653362393833666130313738303834323234366534343761
34373130626630633339633633323566313166366230393464646365313565653936353536313464
30376163383339326564346330366238393361393761353731663031326435306166366434623337
33616365393438383530353266626531663332626432376563373537363666613336353132643064
32346463373639346232326437333232306439373930343033623435646639613730313562386239
36613365313165613461343934666466656535633338353962363866653962636436616436346465
61316364653536636237626362633762656666313933623563386431313836643366653136323566
32633933323838656462333762613162323233333738393864316439643739356237613232333165
39353366363661313433663031656361356132613031636436653761663233363737313839633331
35666335393063333833616635633038393766383633363538303361646538393138613639343061
30303532653539316237636465356366636439373130373435393462383964363963613932613463
36626362323631623639316664396330386261313831373462663236316536646565646534356139
66393939646163396630663631386336653464346266306536396364616438336130373861643635
34336661386635393939333561643530613335623533373963383666343161386333376464373033
63333862386539663633393939623837336638303935363863333436393831356632653830623832
30363135646535343133613463653530313532306565353837656633616262383764663433663334
39323737323130623138303263386238616262303662663064373132323166616662636236613036
39613733356461646366313466303965363632343562666363616465336266653632346631373262
61336431373532366336633236346362643333316363653431383936376561373538653865623161
38386264303739643561313536613933373665336466613833663339323635643337336635366532
30326633323038366333616230336337633263363661393133313062303938663763626235323762
62383339306163363732646463616234633635626432626536633432316133653035386535663431
34616634613639383336326236633832363038336362643934623135636332336633326661343063
66303465303366303235636465346232313062383730346130646464663732646362323236316464
31633261613432646462373730336231356232323237396163323466383131656638313130656566
38353532343135646431613438306530646165323837386661393339333861616235616338613165
62356565633861356566363831343238623130303765383866373961666134666438373536613838
36333436383966313630643866376532636333633261323436616462643635383965636364323436
34636666386261353463303938393666336563303834373336663539633234616561643935643362
63643938656137653334333737666231326663366334653633363333656439343164376331303833
31616132653264666439323439336461313035373064613337373864626337313961663964383762
32353332636430313466346464393263366337353363373738653262373062646230313139323034
31313439376633613531306262396334303961633135346563613738386438663461616437303535
35646130376566393034633635393235356333333864353161373162313936383635653533616364
31323838323832353262396363353064656463666661396365323762333630313239613565306635
36373431633135663138323131636335653564326638323839633037653630323339393232626536
31346361366138626230623430653932616366666462333763633831636432373365643965316536
65633936313064356132396133623538643834373664333961623730316230636338666363373030
61363339636530316433333134653965666362356536376332346663306136346161633932666162
63386131393835626234343766303166643034346338643566636361333034343530313436363362
38353132396633346430393235623666653463363933373136366139383831336537633333636437
37383435333865383565306362616534643331323061333765636432383933613634303961636233
63376630343965303139633731393338663439373837356430646331346436623032326131386637
37656436306133363832316637353461333938663361333530643939376666663237343162623138
35306165306339343737343164616163393532336161613036663935363632376538613565653939
36353465393639313866363761363332373833366438353233326331653261636438346161666538
34663862343431373437353638643565343165343466396234363636616637313836643431386666
62616663353262373263383661386466396563636263623663636563393639383465333663636230
37303930656564376161373537613337386134636464663061386461323236383032636331363836
3039

View File

@ -2,7 +2,10 @@
gitea1.afpy.org
[woodpeckers]
woodpecker1.afpy.org
boole.mdk.woodpecker-agents.afpy.org
[woodpecker_agents]
boole.mdk.woodpecker-agents.afpy.org
[muninservers]
deb2.afpy.org

View File

@ -2,69 +2,238 @@
- hosts: woodpeckers
vars:
- WOODPECKER_VERSION: "0.15.7"
- WOODPECKER_AGENT_SECRET: "{{ vault_woodpecker_agent_secret }}"
- WOODPECKER_GITEA_SECRET: "{{ vault_woodpecker_gitea_secret }}"
- WOODPECKER_GITEA_CLIENT: "78903dbe-f90e-4c8d-947a-f6839a1d11c9"
handlers:
- name: restart woodpecker
service:
name: woodpecker
state: restarted
daemon_reload: yes
- name: restart woodpecker agent
service:
name: woodpecker-agent
state: restarted
daemon_reload: yes
tasks:
- name: Install requirements
package:
name: docker.io
- name: Setup nginx
include_role: name=nginx
vars:
nginx_domain: woodpecker.afpy.org
nginx_certificates: ['woodpecker.afpy.org']
nginx_conf: |
server
{
listen [::]:80; listen 80;
server_name woodpecker.afpy.org;
access_log /var/log/nginx/woodpecker.afpy.org-access.log;
error_log /var/log/nginx/woodpecker.afpy.org-error.log;
return 301 https://woodpecker.afpy.org$request_uri;
}
server
{
listen [::]:443 ssl; listen 443 ssl;
server_name woodpecker.afpy.org;
access_log /var/log/nginx/woodpecker.afpy.org-access.log;
error_log /var/log/nginx/woodpecker.afpy.org-error.log;
include snippets/letsencrypt-woodpecker.afpy.org.conf;
client_max_body_size 16M;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- name: Download woodpecker
get_url:
dest: /root/
url: "https://github.com/woodpecker-ci/woodpecker/releases/download/v{{WOODPECKER_VERSION}}/woodpecker-server_{{WOODPECKER_VERSION}}_amd64.deb"
mode: 0644
owner: root
group: root
- name: Install woodpecker
apt:
deb: "/root/woodpecker-server_{{WOODPECKER_VERSION}}_amd64.deb"
state: present
- name: Create woodpecker group
group:
name: woodpecker
state: present
- name: Woodpecker user
user:
system: true
password: '!'
home: /var/lib/woodpecker
shell: /bin/bash
group: woodpecker
name: woodpecker
- name: Create SQLite directory
file:
path: '/var/lib/woodpecker'
state: directory
mode: 0755
owner: woodpecker
group: woodpecker
- name: Create woodpecker directory
file:
path: '/root/woodpecker'
state: directory
mode: 0755
# See https://woodpecker-ci.org/docs/administration/vcs/gitea
- name: Setup a docker-compose file
- name: woodpecker systemd service
notify: restart woodpecker
copy:
dest: /root/woodpecker/docker-compose.yml
mode: 0644
dest: /etc/systemd/system/woodpecker.service
content: |
version: '3'
[Unit]
Description=Woodpecker
After=network.target
services:
woodpecker-server:
image: woodpeckerci/woodpecker-server:latest
ports:
- 8000:8000
volumes:
- woodpecker-server-data:/var/lib/woodpecker/
environment:
- WOODPECKER_OPEN=false
- WOODPECKER_ORGS=AFPy
- WOODPECKER_HOST=https://woodpecker.afpy.org
[Service]
User=woodpecker
Group=woodpecker
WorkingDirectory=/var/lib/woodpecker/
Environment="WOODPECKER_AGENT_SECRET={{ WOODPECKER_AGENT_SECRET }}"
Environment="WOODPECKER_OPEN=true"
Environment="WOODPECKER_ORGS=AFPy"
Environment="WOODPECKER_HOST=https://woodpecker.afpy.org"
Environment="WOODPECKER_GITEA=true"
Environment="WOODPECKER_GITEA_URL=https://git.afpy.org"
Environment="WOODPECKER_GITEA_CLIENT={{WOODPECKER_GITEA_CLIENT}}"
Environment="WOODPECKER_GITEA_SECRET={{WOODPECKER_GITEA_SECRET}}"
ExecStart=/usr/local/bin/woodpecker-server
PrivateTmp=true
- WOODPECKER_GITEA=true
- WOODPECKER_GITEA_URL=https://git.afpy.org
- WOODPECKER_GITEA_CLIENT=0e954b08-6ac1-42ce-a647-432007bb564d
- WOODPECKER_GITEA_SECRET=gto_m5tfx3lgsq25wzmcn6vxyp2sxbladk3fdwlabixukhyus4lzhs6q
- WOODPECKER_AGENT_SECRET={{WOODPECKER_AGENT_SECRET}}
volumes:
woodpecker-server-data:
[Install]
WantedBy=multi-user.target
- name: Run Woodpecker server
docker_compose:
project_src: woodpecker
service:
name: woodpecker
enabled: yes
state: started
daemon_reload: yes
# The agent conf could look like:
# woodpecker-agent:
# image: woodpeckerci/woodpecker-agent:latest
# command: agent
# restart: always
# depends_on:
# - woodpecker-server
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# environment:
# - WOODPECKER_SERVER=woodpecker-server:9000
# - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
- hosts: woodpecker_agents
vars:
- WOODPECKER_VERSION: "0.15.7"
- WOODPECKER_AGENT_SECRET: "{{ vault_woodpecker_agent_secret }}"
tasks:
- 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
#
# - hosts: woodpecker_agents
# vars:
# - WOODPECKER_AGENT_SECRET: "{{ vault_woodpecker_agent_secret }}"
# tasks:
# - name: Install requirements
# package:
# name: [docker.io, docker-compose]
# state: present
#
# - name: Ensure docker is listening
# service:
# name: docker.socket
# state: started
#
# - name: Create woodpecker directory
# file:
# path: '/root/woodpecker'
# state: directory
# mode: 0755
#
# - name: Setup a docker-compose file
# copy:
# dest: /root/woodpecker/docker-compose.yml
# mode: 0644
# content: |
# version: '3'
#
# services:
# woodpecker-agent:
# image: woodpeckerci/woodpecker-agent:latest
# command: agent
# restart: always
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# environment:
# - WOODPECKER_SERVER=woodpecker.afpy.org:9000
# - WOODPECKER_AGENT_SECRET={{WOODPECKER_AGENT_SECRET}}
#
# - name: Run Woodpecker agent
# docker_compose:
# project_src: woodpecker
#
#
#
#
#