87 lines
2 KiB
YAML
87 lines
2 KiB
YAML
---
|
|
- name: Install required packages
|
|
ansible.builtin.apt:
|
|
pkg:
|
|
- nodejs
|
|
- npm
|
|
- docker-ce
|
|
- docker-ce-cli
|
|
- containerd.io
|
|
- docker-buildx-plugin
|
|
- docker-compose-plugin
|
|
update_cache: true
|
|
become: true
|
|
|
|
- name: Give user access to docker
|
|
ansible.builtin.user:
|
|
name: ansible
|
|
append: true
|
|
groups: docker
|
|
become: true
|
|
|
|
- name: Create directory
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: /home/ansible/woodpecker
|
|
mode: "0772"
|
|
|
|
- name: Copy docker-compose
|
|
ansible.builtin.copy:
|
|
src: files/docker-compose.yml
|
|
dest: /home/ansible/woodpecker
|
|
mode: "0772"
|
|
|
|
|
|
- name: Deploy woodpecker
|
|
community.docker.docker_compose_v2:
|
|
state: present
|
|
project_src: /home/ansible/woodpecker
|
|
|
|
|
|
- name: Deploy woodpecker
|
|
community.docker.docker_compose_v2:
|
|
state: restarted
|
|
project_src: /home/ansible/woodpecker
|
|
|
|
- name: Generate an OpenSSH keypair with the default values (4096 bits, rsa)
|
|
community.crypto.openssh_keypair:
|
|
path: /home/ansible/.ssh/id_ssh_rsa
|
|
|
|
- name: Read public key into var
|
|
ansible.builtin.slurp:
|
|
src: /home/ansible/.ssh/id_ssh_rsa.pub
|
|
register: slurped_data
|
|
|
|
- name: Set fact
|
|
ansible.builtin.set_fact:
|
|
priv_key: "{{ slurped_data.content | ansible.builtin.b64decode }}"
|
|
|
|
- name: Add public key to other server
|
|
ansible.builtin.lineinfile:
|
|
state: present
|
|
line: "{{ priv_key }}"
|
|
path: /home/ansible/.ssh/authorized_keys
|
|
delegate_to: 192.168.1.92
|
|
|
|
- name: Copy Dockerfile
|
|
ansible.builtin.copy:
|
|
src: files/Dockerfile
|
|
dest: /home/ansible/woodpecker/Dockerfile
|
|
mode: "0772"
|
|
|
|
- name: Build docker container locally
|
|
community.docker.docker_image:
|
|
build:
|
|
path: /home/ansible/woodpecker/
|
|
name: local/builder
|
|
source: build
|
|
become: true
|
|
|
|
- name: Copy nginx config
|
|
ansible.builtin.copy:
|
|
src: woodpecker.conf
|
|
dest: /etc/nginx/sites-enabled/woodpecker.conf
|
|
owner: root
|
|
mode: "0644"
|
|
become: true
|
|
notify: Reload nginx
|