New In infrared 2.0

Highlights

  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
## CLEANUP ##
infrared virsh -v -o cleanup.yml \
    --host-address example.redhat.com \
    --host-key ~/.ssh/id_rsa \
    --kill yes

## PROVISION ##
infrared virsh -v \
    --topology-nodes undercloud:1,controller:1,compute:1 \
    --host-address example.redhat.com \
    --host-key ~/.ssh/id_rsa \
    --image-url http://www.images.com/rhel-7.qcow2

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

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

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

## TEMPEST ##
infrared tempest -v \
    --config-options "image.http_image=http://www.images.com/cirros.qcow2" \
    --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
## CLEANUP ##
ir-provisioner -d virsh -v \
  --topology-nodes=undercloud:1,controller:1,compute:1 \
  --host-address=example.redhat.com \
  --host-key=~/.ssh/id_rsa \
  --image-url=www.images.com/rhel-7.qcow2 \
  --cleanup

## PROVISION ##
ir-provisioner -d virsh -v \
  --topology-nodes=undercloud:1,controller:1,compute:1 \
  --host-address=example.redhat.com \
  --host-key=~/.ssh/id_rsa \
  --image-url=http://www.images.com/rhel-7.qcow2

## 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 \
  --network-protocol=ipv4

ansible-playbook -i hosts -e @install.yml \
  playbooks/installer/ospd/post_install/create_tempest_deployer_input_file.yml

## TEMPEST ##
ir-tester --debug tempest -v \
  --config-options="image.http_image=http://www.images.com/cirros.qcow2" \
  --tests=sanity.yml

ansible -i hosts all -m ping