diff --git a/README.rst b/README.rst index c38c33803..05b944c88 100644 --- a/README.rst +++ b/README.rst @@ -112,6 +112,7 @@ The CSV file has the following columns: Example definition:: + 00:11:22:33:44:55,root,undefined,192.168.122.1,1,8192,512,NA,NA,aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee,hostname_100,192.168.2.100,,,, This file format is fairly flexible and can be easilly modified @@ -156,3 +157,24 @@ drive and are statically assigned. Example:: ansible-playbook -i inventory/localhost -vvvv deploy.yaml -e baremetal_csv_file=inventory/baremetal.csv + +Testing with Virtual Machines +============================= + +Bifrost supports using virtual machines to emulate the hardware. All of the +steps mentioned above are mostly the same. + +It is assumed you have an SSH server running on the host machine. The ``agent_ssh`` +driver, used by Ironic with VM testing, will need to use SSH to control the +virtual machines. + +An SSH key is generated for the ``ironic`` user when testing. The ironic conductor +will use this key to connect to the host machine and run virsh commands. + +#. Set ``testing`` to *true* in the ``inventory/group_vars/all`` file. +#. You may need to adjust the value for ``ssh_public_key_path``. +#. Run the install step, as documented above. +#. Run the ``create_vm_nodes.sh`` script. By default, it will create a single VM node. Read the documentation within the script to see how to create more than one. +#. The ``create_vm_nodes.sh`` script will output CSV entries that can be used for the enrollment step. You will need to create a CSV file with this output. +#. Run the enrollment step, as documented above, using the CSV file you created in the previous step. +#. Run the deployment step, as documented above. diff --git a/create_vm_nodes.sh b/create_vm_nodes.sh index 0055e97c7..718acc6b4 100755 --- a/create_vm_nodes.sh +++ b/create_vm_nodes.sh @@ -213,8 +213,6 @@ then exit 1 fi -node_info="-i deploy_kernel=http://127.0.0.1:8080/coreos_production_pxe.vmlinuz -i deploy_ramdisk=http://127.0.0.1:8080/coreos_production_pxe_image-oem.cpio.gz -i ssh_virt_type=virsh -i ssh_address=127.0.0.1 -i ssh_port=1024 -i ssh_username=root -i ssh_key_filename=/tmp/ironic_key" - for (( i=1; i<=${NODECOUNT}; i++ )) do name=${NODEBASE}${i} diff --git a/roles/ironic-install/defaults/main.yml b/roles/ironic-install/defaults/main.yml index 1a9d03eb0..b1408e744 100644 --- a/roles/ironic-install/defaults/main.yml +++ b/roles/ironic-install/defaults/main.yml @@ -56,10 +56,3 @@ deploy_image: "{{http_boot_folder}}/{{deploy_image_filename}}" # ipmi_bridging: Default undefined. Valid values: "no", "single", and "dual" # See http://docs.openstack.org/developer/ironic/_modules/ironic/drivers/modules/ipmitool.html #ipmi_bridging: no - -# When testing with VMs, define SSH address, port, and user for agent_ssh driver. -ssh_username: ironic -ssh_port: 1024 -ssh_address: 127.0.0.1 -ssh_private_key_path: /home/ironic/.ssh/id_rsa -