New In infrared 2.0


  1. Workspaces:
    Added Workspaces. Every session must be tied to an active workspace. All input and output file are taken from, and written to, the active workspace directory. which allows easy migration of workspace, and avoids accidental overwrites of data, or corrupting the working directory. The deprecates ir-archive in favor of workspace import and workspace export
  2. Stand-Alone Plugins:
    Each plugins is fully contained within a single directory. Plugin structure is fully defined and plugins can be loaded from any location on the system. “Example plugin” shows contributors how to structure their Ansible projects to plug into infrared
  3. SSH:
    Added ability to establish interactive ssh connection to nodes, managed by workspace using workspace’s inventory infrared ssh <hostname>
  4. Single Entry-Point:
    ir-provisioner, ir-installer, ir-tester commands are deprecated in favor of a single infrared entry point (ir also works). Type infrared --help to get the full usage manual.
  5. TripleO:
    ir-installer ospd was broken into two new plugins:
  6. Answers file:
    The switch --generate-conf-file is renamed --generate-answers-file to avoid confusion with configuration files.
  7. Topoloy:
    The topology input type has been deprecated. Use KeyValueList to define node types and amounts, and include_vars to add relevant files to playbooks, see Topology description for more information
  8. Cleanup:
    the --cleanup options now accepts boolean values. Any YAML boolean is accpeted (“yes/no”, “true/false”, “on/off”)
  9. Bootstrap:
    On virtual environmants, tripleo-undercloud can create a snapshot out of the undercloud VM that can later be used to bypass the installation process.

Example Script Upgrade

infrared v2 infrared v1
infrared virsh -v -o cleanup.yml \
    --host-address \
    --host-key ~/.ssh/id_rsa \
    --kill yes

infrared virsh -v \
    --topology-nodes undercloud:1,controller:1,compute:1 \
    --host-address \
    --host-key ~/.ssh/id_rsa \

infrared tripleo-undercloud -v mirror tlv \
    --version 9 \
    --build passed_phase1 \
    --ssl true \
    --images-task rpm

infrared tripleo-overcloud -v \
    --version 10 \
    --introspect yes \
    --tagging yes \
    --deploy yes \
    --deployment-files virt \
    --network-backend vxlan \
    --overcloud-ssl false \
    --network-protocol ipv4

infrared cloud-config -v \
    -o cloud-config.yml \
    --deployment-files virt \
    --tasks create_external_network,forward_overcloud_dashboard,network_time,tempest_deployer_input

infrared tempest -v \
    --config-options "image.http_image=" \
    --openstack-installer tripleo \
    --openstack-version 9 \
    --tests sanity

# Fetch inventory from active workspace
WORKSPACE=$(ir workspace list | awk '/*/ {print $2}')
ansible -i .workspaces/$WORKSPACE/hosts all -m ping
ir-provisioner -d virsh -v \
  --topology-nodes=undercloud:1,controller:1,compute:1 \ \
  --host-key=~/.ssh/id_rsa \ \

ir-provisioner -d virsh -v \
  --topology-nodes=undercloud:1,controller:1,compute:1 \ \
  --host-key=~/.ssh/id_rsa \

## OSPD ##
ir-installer --debug mirror tlv ospd -v -o install.yml\
  --product-version=9 \
  --product-build=latest \
  --product-core-build=passed_phase1 \
  --undercloud-ssl=true \
  --images-task=rpm \
  --deployment-files=$PWD/settings/installer/ospd/deployment/virt \
  --network-backend=vxlan \
  --overcloud-ssl=false \

ansible-playbook -i hosts -e @install.yml \

ir-tester --debug tempest -v \
  --config-options="image.http_image=" \

ansible -i hosts all -m ping