Configure CaaS SR-IOV and provider networks
[ta/infra-ansible.git] / roles / baremetal_provision / tasks / main.yml
index 38b4675..04794af 100644 (file)
 
 
 - include: convert_qcow_raw.yml
-
-- name: Convert baremetal_nodes.j2 Jinja2 template to json file
-  template:
-    src: 'baremetal_nodes.j2'
-    dest: '/tmp/baremetal_nodes.json'
-
-- name: Include variables from baremetal_nodes.json
-  include_vars: '/tmp/baremetal_nodes.json'
-
-- name: Remove /tmp/baremetal_nodes.json
-  file:
-    path: "/tmp/baremetal_nodes.json"
-    state: "absent"
-
-- name: Restore baremetal_ironic_nodes variable with ironic_nodes variable
-  set_fact:
-    baremetal_ironic_nodes: "{{ironic_nodes}}"
-  when: baremetal_ironic_nodes is undefined
+  run_once: True
 
 - name: Create vbmc ports for virtual hosts
-  include: vbmc_port_setup.yml
+  include_tasks: vbmc_port_setup.yml
   when: virtual_env
 
-- set_fact:
-    net_conn_details: "{{net_conn_details + [{'node_name': item.name, 'node_ip': item.driver_info.power.os_net_config | json_query('network_config[*].addresses[0].ip_netmask') |  ipaddr('address')}] }}"
-  with_items: "{{ baremetal_ironic_nodes }}"
-  when: item.driver_info.power.os_net_config.network_config[0].type != 'ovs_bridge'
-  no_log: True
-
-- set_fact:
-    net_conn_details: "{{net_conn_details + [{'node_name': item.name, 'node_ip': item.driver_info.power.os_net_config | json_query('network_config[*].members[*].addresses[0].ip_netmask')|first | ipaddr('address')}] }}"
-  with_items: "{{ baremetal_ironic_nodes }}"
-  when: item.driver_info.power.os_net_config.network_config[0].type == 'ovs_bridge'
-  no_log: True
-
-- include: setup_http.yml
-  tags: http_provision
-
 - name: Setup tmux
   copy:
     src: "tmux_setup"
     dest: "/opt/"
 
-- include: ironic_nodes_create.yml
+- include_tasks: ironic_nodes_create.yml
   tags:
     - baremetal-ironic-nodes-create
 
-- include: start_console_logging.yml
+- include_tasks: start_console_logging.yml
   tags:
     - baremetal-ironic-nodes-deploy
   when: virtual_env == false
 
-- include: ironic_nodes_deploy.yml
+- include_tasks: ironic_nodes_deploy.yml
   tags:
     - baremetal-ironic-nodes-deploy
-
-- include: stop_console_logging.yml
+  when: baremetal_ironic_node_id is defined
+
+- name: Set Ironic node in maintenance.
+  os_ironic_node:
+    cloud: default
+    endpoint_type: internal
+    auth_type: password
+    uuid: "{{ironic_node_details.name}}"
+    maintenance: True
+    deploy: False
+  when:
+    - installation_phase != "provisioning-started"
+
+- name: Set Ironic node in maintenance.
+  environment:
+    OS_AUTH_TOKEN: "fake-token"
+    IRONIC_URL: "{{ ironic_service_adminurl }}"
+  os_ironic_node:
+    auth:
+    auth_type: 'None'
+    ironic_url: "{{ ironic_service_adminurl }}"
+    uuid: "{{ironic_node_details.name}}"
+    maintenance: True
+    deploy: False
+  when:
+    - installation_phase == "provisioning-started"
+
+- include_tasks: stop_console_logging.yml
   tags:
     - baremetal-ironic-nodes-deploy
   when: virtual_env == false
-
-- include: teardown_http.yml
-  tags: http_provision