ansible: Install gcc5 on Debian 12 CI nodes
[lttng-ci.git] / automation / ansible / playbooks / ci-instances.yml
index b606a48d9daa982fbd18f0eb9ac8e1dd3dd9a2e4..1259a7a724d71c282032badb465cb662f2f6e1a9 100644 (file)
@@ -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:
                 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}}",
         ]
This page took 0.024502 seconds and 4 git commands to generate.