-
Notifications
You must be signed in to change notification settings - Fork 0
/
site.yml
67 lines (63 loc) · 2.29 KB
/
site.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
- hosts: localhost
gather_facts: no
connection: local
tasks:
- name: Build runner Heat stack
os_stack:
name: "{{ env_name|default('gitlab-runner') }}"
state: present
template: "files/gitlab-runner-stack.yml"
wait: yes
parameters:
env_name: "{{ env_name|default('gitlab-runner') }}"
runner_vm_image: "{{ runner_vm_image|default('CentOS-7') }}"
runner_vm_flavor: "{{ runner_vm_flavor|default('standard.tiny') }}"
runner_vm_network: "{{ runner_vm_network }}"
key_name: "{{ key_name }}"
secgroup_runner_vm_rules: "{{ secgroup_runner_vm_rules }}"
volume_runner_vm_size: "{{ volume_runner_vm_size }}"
runner_ssh_key_rsa_private: "{{ ssh_key_rsa_private|default('') }}"
runner_ssh_key_rsa_public: "{{ ssh_key_rsa_public|default('') }}"
runner_ssh_key_ecdsa_private: "{{ ssh_key_ecdsa_private|default('') }}"
runner_ssh_key_ecdsa_public: "{{ ssh_key_ecdsa_public|default('') }}"
- name: Associate floating IP with runner VM
os_floating_ip:
server: "{{ env_name }}"
floating_ip_address: "{{ runner_public_ip }}"
- name: Refresh dynamic inventory
meta: refresh_inventory
- hosts: runner
gather_facts: no
tasks:
- name: Wait for SSH to work
shell: ssh {{ ansible_ssh_user }}@{{ ansible_ssh_host }} 'echo success'
register: result
until: result.stdout.find('success') != -1
retries: 30
delay: 5
changed_when: false
delegate_to: localhost
- hosts: runner
become: True
tasks:
- name: create directories for secrets
file:
path: "{{ item.dest | dirname }}"
state: directory
with_items:
- dest: "/dev/shm/secret/"
- "{{ runner_secrets|default([]) }}"
when: item.dest is defined
- name: initialize secrets in /dev/shm/secret
copy:
src: "{{ item.src|default('/dev/shm/secret/' + item.name) }}"
dest: "{{ item.dest|default('/dev/shm/secret/' + item.name) }}"
mode: "{{ item.mode|default(omit) }}"
owner: "{{ item.owner|default(omit) }}"
group: "{{ item.group|default(omit) }}"
with_items: "{{ runner_secrets|default([]) }}"
- hosts: runner
roles:
- ansible-role-users
- gitlab-runner