Add initial setup
This commit is contained in:
parent
295059806d
commit
84bfc0d0fc
3 changed files with 131 additions and 0 deletions
|
|
@ -1,2 +1,3 @@
|
|||
# woodpecker-ci
|
||||
|
||||
Deployment for Woodpecker CI
|
||||
|
|
|
|||
81
playbook.yml
Normal file
81
playbook.yml
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
- hosts: localhost
|
||||
tasks:
|
||||
- name: create required directories
|
||||
become: true
|
||||
file:
|
||||
path: '{{ item.path }}'
|
||||
state: '{{ item.state }}'
|
||||
mode: '{{ item.mode }}'
|
||||
owner: '{{ item.owner }}'
|
||||
group: '{{ item.group }}'
|
||||
loop:
|
||||
- {
|
||||
path: '{{ app_dir }}',
|
||||
owner: sonny,
|
||||
group: sonny,
|
||||
state: directory,
|
||||
mode: 755
|
||||
}
|
||||
|
||||
- name: copy docker-compose file
|
||||
template:
|
||||
src: 'templates/docker-compose.j2'
|
||||
dest: '{{ app_dir }}/docker-compose.yml'
|
||||
|
||||
- name: stop woodpecker-ci
|
||||
command: docker compose --file docker-compose.yml down
|
||||
args:
|
||||
chdir: '{{ app_dir }}'
|
||||
|
||||
- name: pull {{ image_tag }}
|
||||
command: docker compose --file docker-compose.yml pull
|
||||
args:
|
||||
chdir: '{{ app_dir }}'
|
||||
|
||||
- name: start woodpecker-ci
|
||||
command: docker compose --file docker-compose.yml up --detach
|
||||
args:
|
||||
chdir: '{{ app_dir }}'
|
||||
|
||||
vars:
|
||||
domain: 'woodpecker.fudiggity.nl'
|
||||
|
||||
image_tag: 'woodpeckerci/woodpecker-server:v2.8.0'
|
||||
agent_tag: 'woodpeckerci/woodpecker-agent:v2.8.0'
|
||||
|
||||
postgres_user: woodpecker
|
||||
postgres_name: woodpecker
|
||||
|
||||
app_dir: '/srv/docker/woodpecker'
|
||||
|
||||
woodpecker_forgejo_url: https://forgejo.fudiggity.nl
|
||||
woodpecker_forgejo_client: f467d6ee-6095-4c90-9d14-674d60b07183
|
||||
woodpecker_forgejo_secret: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
62356630626162303634613865313562333538353866643234623239656366366333353164326262
|
||||
3633363836323134356264343731643661353865323232640a346161336134636466653932303663
|
||||
33356431633266633335353737663363353938613730613030393636363965363735623439356463
|
||||
3730616535313564350a393462666630613233643433333433646662383831396139303764393734
|
||||
36353238383965616135663631303933313561653662393734313934623261346661613936303165
|
||||
64663064643063663964393962316436666336373139333232333537303034346262376631643562
|
||||
666637613833363639386433663464386239
|
||||
|
||||
woodpecker_agent_secret: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
62323937303564623931616630633864666435353335346262303761346132356461333938623461
|
||||
3236306164663135333362643664313136306238643062330a363862623138613932363935613231
|
||||
37323637646666653961376533356639666262613630323261333030323834343831376435373534
|
||||
6635616637306133650a656365633538643232303866346466373135653364333332373061633034
|
||||
38383564653265303437393665303830343238663336386163653332336662383464366239643765
|
||||
66353261343339333664346334393036646134373066343636303136383063373432646537646236
|
||||
393032346237326134303933336565343338
|
||||
|
||||
postgres_password: !vault |
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
34613464623532313861303136613838616335643034386262343036353935646364623239663061
|
||||
3730646236326435313630323234633363333333616333640a383361613335343930343866353361
|
||||
32356165333961663436356433663733363865383932613365636137326534313136333230366364
|
||||
3137326562316337350a363537336265303438643637663465366333353633383865623463326632
|
||||
66343963666231343835663438303562643635643738366335313736666136373136666164316566
|
||||
30623366616261636261386538333537653063393264643465383830613536343134346364373734
|
||||
336135623065323164623639646365343339
|
||||
49
templates/docker-compose.j2
Normal file
49
templates/docker-compose.j2
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# {{ ansible_managed }}
|
||||
|
||||
services:
|
||||
woodpecker-server:
|
||||
image: {{ image_tag }}
|
||||
ports:
|
||||
- 7000:8000
|
||||
volumes:
|
||||
- woodpecker-server-data:/var/lib/woodpecker/
|
||||
depends_on:
|
||||
- db
|
||||
environment:
|
||||
WOODPECKER_OPEN: true
|
||||
WOODPECKER_HOST: 'https://{{ domain }}'
|
||||
WOODPECKER_AGENT_SECRET: {{ woodpecker_agent_secret }}
|
||||
WOODPECKER_DATABASE_DRIVER: postgres
|
||||
WOODPECKER_DATABASE_DATASOURCE: postgres://{{ postgres_user }}:{{ postgres_password }}@db:5432/postgres?sslmode=disable
|
||||
WOODPECKER_FORGEJO: true
|
||||
WOODPECKER_FORGEJO_URL: {{ woodpecker_forgejo_url }}
|
||||
WOODPECKER_FORGEJO_CLIENT: {{ woodpecker_forgejo_client }}
|
||||
WOODPECKER_FORGEJO_SECRET: {{ woodpecker_forgejo_secret }}
|
||||
|
||||
db:
|
||||
image: postgres:17
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_USER: {{ postgres_user }}
|
||||
POSTGRES_PASSWORD: {{ postgres_password }}
|
||||
POSTGRES_DB: {{ postgres_name }}
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
|
||||
woodpecker-agent:
|
||||
image: {{ agent_tag }}
|
||||
command: agent
|
||||
restart: always
|
||||
depends_on:
|
||||
- woodpecker-server
|
||||
volumes:
|
||||
- woodpecker-agent-config:/etc/woodpecker
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
WOODPECKER_SERVER: woodpecker-server:9000
|
||||
WOODPECKER_AGENT_SECRET: {{ woodpecker_agent_secret }}
|
||||
|
||||
volumes:
|
||||
woodpecker-server-data:
|
||||
woodpecker-agent-config:
|
||||
postgres-data:
|
||||
Reference in a new issue