Commit | Line | Data |
---|---|---|
c3c15dc7 KS |
1 | --- |
2 | - hosts: "{{lxd_host}}" | |
3 | vars_files: | |
4 | - ../vars/ci-instances.yml | |
5 | - ../roles/lxd/defaults/main.yml | |
6 | vars: | |
7 | skp_lxd: false | |
8 | skip_dns: false | |
9 | skip_jenkins: false | |
10 | jenkins_config: "~/.config/jenkins_jobs/jenkins_jobs.ini" | |
11 | jenkins_default_credentials: "c3e4f9f2-3e89-474d-bc75-6251a13e1053" | |
12 | tasks: | |
13 | - name: Manage instances | |
14 | when: not skip_lxd | |
15 | include_tasks: | |
16 | file: '../roles/lxd/tasks/container.yml' | |
17 | vars: | |
18 | object: >- | |
19 | {{item.lxd| | |
20 | combine({'config':{'user.network-config': lookup('ansible.builtin.template', | |
21 | '../templates/cloud_init_netconf.j2', | |
22 | template_vars=item.meta | |
23 | ) | |
24 | } | |
25 | }, | |
26 | recursive=true | |
27 | )}} | |
28 | with_items: "{{containers}}" | |
29 | - name: Update DNS entries | |
30 | delegate_to: localhost | |
31 | when: not skip_dns | |
32 | with_items: "{{containers}}" | |
33 | ansible.builtin.command: | |
34 | argv: [ | |
35 | '../scripts/update_dns_entry.py', '-n', "{{item.lxd.name}}", | |
36 | '-z', "{{search_domain}}", | |
37 | '-v', "{{item.meta.address}}", | |
38 | '-s', "{{name_server}}", | |
39 | ] | |
40 | - name: Update Jenkins nodes | |
41 | delegate_to: localhost | |
42 | when: not skip_jenkins | |
43 | with_items: "{{containers}}" | |
44 | vars: | |
45 | node_name: "{{item.jenkins.node_name|default(item.lxd.name)}}" | |
46 | node_ip: "{{item.meta.address|default(None)}}" | |
47 | node_host: "{{item.meta.jenkins.node_host|default(item.lxd.name + '.' + search_domain)}}" | |
48 | node_label: "{{item.jenkins.label|default('')}}" | |
49 | node_state: "{{item.jenkins.state|default('online')}}" | |
50 | node_credentials: "{{item.jenkins.credentials|default(jenkins_default_credentials)}}" | |
51 | node_message: "{{item.jenkins.message|default('Set offline by ansible')}}" | |
52 | ansible.builtin.command: | |
53 | argv: [ | |
54 | '../scripts/update_jenkins_node.py', '-n', "{{node_name}}", | |
55 | '-c', "launcher/host={{node_ip|default(node_host)}}", | |
56 | '-c', "label={{node_label}}", | |
57 | '-c', "launcher/credentialsId={{node_credentials}}", | |
58 | '-c', "launcher/sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.ManuallyTrustedKeyVerificationStrategy=class", | |
59 | '-s', "{{node_state}}", '-m', "{{node_message}}", | |
60 | '-f', "{{jenkins_config|expanduser}}", | |
61 | ] |