You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
72 lines
1.9 KiB
- name: create user
|
|
become: yes
|
|
user:
|
|
name: "{{ ansible_runner_user }}"
|
|
shell: "/sbin/nologin"
|
|
home: "{{ ansible_runner_home }}"
|
|
|
|
- name: install packages
|
|
become: yes
|
|
community.general.openbsd_pkg:
|
|
name: [ "git", "ansible" ]
|
|
state: present
|
|
snapshot: "{{ force_openbsd_snapshot | default(false) }}"
|
|
|
|
- name: create ssh key
|
|
become: yes
|
|
openssh_keypair:
|
|
path: "{{ ansible_runner_home }}/.ssh/id_rsa"
|
|
owner: "{{ ansible_runner_user }}"
|
|
|
|
- name: clone deployments
|
|
become: yes
|
|
git:
|
|
key_file: "{{ ansible_runner_home }}/.ssh/id_rsa"
|
|
accept_hostkey: yes
|
|
repo: "{{ deployment.repo }}"
|
|
dest: "{{ ansible_runner_home }}/{{ deployment.name }}"
|
|
loop: "{{ ansible_runner_schedule }}"
|
|
loop_control:
|
|
loop_var: deployment
|
|
|
|
- name: set permissions
|
|
become: yes
|
|
file:
|
|
path: "{{ ansible_runner_home }}/{{ deployment.name }}"
|
|
owner: "{{ ansible_runner_user }}"
|
|
recurse: yes
|
|
loop: "{{ ansible_runner_schedule }}"
|
|
loop_control:
|
|
loop_var: deployment
|
|
|
|
- name: setup run scripts
|
|
become: yes
|
|
template:
|
|
src: run_deployment.sh
|
|
dest: "{{ ansible_runner_home }}/{{ deployment.name }}/run_deployment.sh"
|
|
mode: '0750'
|
|
owner: "{{ ansible_runner_user }}"
|
|
loop: "{{ ansible_runner_schedule }}"
|
|
loop_control:
|
|
loop_var: deployment
|
|
|
|
- name: setup cron jobs
|
|
become: yes
|
|
cron:
|
|
user: "{{ ansible_runner_user }}"
|
|
name: "{{ deployment.name }}"
|
|
job: "{{ ansible_runner_home }}/{{ deployment.name }}/run_deployment.sh"
|
|
minute: "{{ deployment.minute }}"
|
|
hour: "{{ deployment.hour }}"
|
|
weekday: "{{ deployment.weekday }}"
|
|
loop: "{{ ansible_runner_schedule }}"
|
|
loop_control:
|
|
loop_var: deployment
|
|
|
|
- name: setup mail alias
|
|
become: yes
|
|
lineinfile:
|
|
path: /etc/mail/aliases
|
|
line: "{{ ansible_runner_user }}: {{ ansible_runner_mailto }}"
|
|
regexp: "^.*{{ ansible_runner_user }}.*$"
|
|
notify: update_aliases
|
|
|