--- - name: Ensure required Python packages are installed pip: name: "{{ item.name }}" version: "{{ item.version | default(omit) }}" state: latest virtualenv: "{{ ironic_inspector_venv }}" extra_args: "{% if ironic_inspector_upper_constraints_file %}-c {{ ironic_inspector_upper_constraints_file }}{% endif %}" with_items: - name: python-ironic-inspector-client - name: Ensure introspection rules exist vars: ansible_python_interpreter: "{{ ironic_inspector_venv }}/bin/python" os_ironic_inspector_rule: auth_type: "{{ ironic_inspector_auth_type }}" auth: "{{ ironic_inspector_auth }}" cacert: "{{ ironic_inspector_cacert | default(omit, true) }}" interface: "{{ ironic_inspector_interface | default(omit, true) }}" conditions: "{{ item.conditions }}" actions: "{{ item.actions }}" description: "{{ item.description | default(omit) }}" uuid: "{{ item.uuid | default(item.description | to_uuid) | default(omit) }}" state: present inspector_url: "{{ ironic_inspector_url }}" with_items: "{{ ironic_inspector_rules }}"