X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=automation%2Fansible%2Fplaybooks%2Fci-instances.yml;h=1259a7a724d71c282032badb465cb662f2f6e1a9;hb=4f6c1ba91db07c3c42f7f294f4e75ee61227d48a;hp=b606a48d9daa982fbd18f0eb9ac8e1dd3dd9a2e4;hpb=c3c15dc7390084325a96212547a8dbf167a74f65;p=lttng-ci.git diff --git a/automation/ansible/playbooks/ci-instances.yml b/automation/ansible/playbooks/ci-instances.yml index b606a48..1259a7a 100644 --- a/automation/ansible/playbooks/ci-instances.yml +++ b/automation/ansible/playbooks/ci-instances.yml @@ -1,17 +1,19 @@ --- -- hosts: "{{lxd_host}}" +- hosts: lxd_cluster_ci:localhost vars_files: - ../vars/ci-instances.yml - ../roles/lxd/defaults/main.yml + - ../roles/libvirt/vars/main.yml vars: - skp_lxd: false + skip_libvirt: false + skip_lxd: false skip_dns: false skip_jenkins: false jenkins_config: "~/.config/jenkins_jobs/jenkins_jobs.ini" jenkins_default_credentials: "c3e4f9f2-3e89-474d-bc75-6251a13e1053" tasks: - name: Manage instances - when: not skip_lxd + when: item.lxd|default(false) and not skip_lxd and inventory_hostname == lxd_host include_tasks: file: '../roles/lxd/tasks/container.yml' vars: @@ -26,29 +28,36 @@ recursive=true )}} with_items: "{{containers}}" + - name: Manage Libvirt VMs + when: item.vm|default(false) and not skip_libvirt and inventory_hostname == item.vm.host|default(libvirt_host) + include_tasks: + file: '../roles/libvirt/tasks/vm.yml' + vars: + object: "{{item.vm}}" + with_items: "{{containers}}" - name: Update DNS entries - delegate_to: localhost - when: not skip_dns + when: not skip_dns and inventory_hostname == 'localhost' with_items: "{{containers}}" ansible.builtin.command: argv: [ - '../scripts/update_dns_entry.py', '-n', "{{item.lxd.name}}", + '../scripts/update_dns_entry.py', '-n', "{{item.lxd.name|default(item.vm.name)}}", '-z', "{{search_domain}}", '-v', "{{item.meta.address}}", '-s', "{{name_server}}", ] - name: Update Jenkins nodes - delegate_to: localhost - when: not skip_jenkins + when: item.jenkins|default(false) and not skip_jenkins and inventory_hostname == 'localhost' with_items: "{{containers}}" vars: - node_name: "{{item.jenkins.node_name|default(item.lxd.name)}}" + node_name: "{{item.jenkins.node_name|default(item.lxd.name|default(item.vm.name))}}" node_ip: "{{item.meta.address|default(None)}}" - node_host: "{{item.meta.jenkins.node_host|default(item.lxd.name + '.' + search_domain)}}" + node_host: "{{item.meta.jenkins.node_host|default(item.lxd.name|default(item.vm.name) + '.' + search_domain)}}" node_label: "{{item.jenkins.label|default('')}}" node_state: "{{item.jenkins.state|default('online')}}" node_credentials: "{{item.jenkins.credentials|default(jenkins_default_credentials)}}" node_message: "{{item.jenkins.message|default('Set offline by ansible')}}" + node_mode: "{{item.jenkins.mode|default('NORMAL')}}" + node_json: "{{item.jenkins.config|default({})|to_json}}" ansible.builtin.command: argv: [ '../scripts/update_jenkins_node.py', '-n', "{{node_name}}", @@ -56,6 +65,8 @@ '-c', "label={{node_label}}", '-c', "launcher/credentialsId={{node_credentials}}", '-c', "launcher/sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.ManuallyTrustedKeyVerificationStrategy=class", + '-c', "mode={{node_mode}}", '-s', "{{node_state}}", '-m', "{{node_message}}", '-f', "{{jenkins_config|expanduser}}", + '-j', "{{node_json}}", ]