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