This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
deploy_opnfv_with_fuel_in_a_virtual_environment [2015/10/27 17:07] Gabor Halasz |
deploy_opnfv_with_fuel_in_a_virtual_environment [2015/11/10 15:07] (current) Billy O'Mahony [CHALLENGES] |
||
|---|---|---|---|
| Line 117: | Line 117: | ||
| </code> | </code> | ||
| - | INCLUDE TO DEPLOYMENT (by using argument for deploy.sh on next slide): | + | INCLUDE ODL PLUGIN IN DEPLOYMENT (by using argument for deploy.sh on next slide): |
| <code> | <code> | ||
| -p <fuel-plugin-opendaylight-rmp-dir> | -p <fuel-plugin-opendaylight-rmp-dir> | ||
| + | </code> | ||
| + | |||
| + | EXCLUDE ODL PLUGIN ENTIRELY | ||
| + | If ODL is not required and the plugin deployment is causing the entire deployment to fail then the ODL plugin can be disabled entirely by editing /fuel/deploy/templates/virtual_environment/conf/plugins_conf/opendaylight.yaml | ||
| + | <code> | ||
| + | opendaylight: | ||
| + | metadata: | ||
| + | enabled: false <<<<< disable ODL | ||
| + | label: OpenDaylight plugin | ||
| </code> | </code> | ||
| Line 213: | Line 222: | ||
| ====CHALLENGES==== | ====CHALLENGES==== | ||
| - | ===CHALLENGE #1=== | + | ===CHALLENGE #1 - SOLVED=== |
| <code> | <code> | ||
| sudo ./deploy.sh ... | sudo ./deploy.sh ... | ||
| Line 239: | Line 248: | ||
| </code> | </code> | ||
| - | **SOLVED** | + | ===CHALLENGE #2 - SOLVED=== |
| + | Deployment seems to be pretty error-prone, if you CTRL+C, and see error „OSError: [Errno 38] Function not implemented: '~/opnfv/fuel/fuel/deploy/fueltmp/origiso/boot.catalog‚”, iso is probably still mounted, check it with: | ||
| + | <code> | ||
| + | $ ~/opnfv/fuel/fuel/ci$ cat /etc/mtab | ||
| + | fuseiso ~/opnfv/fuel/fuel/deploy/fueltmp/origiso fuse.fuseiso rw,nosuid,nodev 0 0 | ||
| + | </code> | ||
| + | Unmount it with: | ||
| + | <code> | ||
| + | $ ~/opnfv/fuel/fuel/ci$ sudo fusermount -u ~/opnfv/fuel/fuel/deploy/fueltmp/origiso | ||
| + | </code> | ||
| + | ===CHALLENGE #3 - DISAPPEARED AFTER CLEANUP WITH MAKE CLEAN=== | ||
| + | BUILD fails with build.sh: | ||
| + | <code> | ||
| + | Installing Fuel Plugins | ||
| + | Fofakeroot /opt/fuel-createmirror-6.1/fuel-createmirror | ||
| + | * INFO: Started /opt/fuel-createmirror-6.1/deb-mirror /opt/fuel-createmirror-6.1/config/mos-ubuntu-updatesonly.cfg | ||
| + | * FATAL: Upstream mirror mirror.fuel-infra.org does not support rsync protocol, aborting | ||
| + | * INFO: Started /opt/fuel-createmirror-6.1/deb-mirror /opt/fuel-createmirror-6.1/config/ubuntu.cfg | ||
| + | * FATAL: Upstream mirror archive.ubuntu.com does not support rsync protocol, aborting | ||
| + | * FATAL: Creation of MOS mirror FAILED, check logs at /var/log/mirror-sync | ||
| + | * FATAL: Creation of Ubuntu mirror FAILED, check logs at /var/log/mirror-sync | ||
| + | make[2]: Leaving directory `~/opnfv/fuel/fuel/build/f_isoroot/f_repobuild' | ||
| + | make[2]: *** [.nailgun] Error 1 | ||
| + | semop(1): encountered an error: Invalid argument | ||
| + | make[1]: *** [f_repobuild] Error 2 | ||
| + | make: *** [f_isoroot] Error 2 | ||
| + | make[1]: Leaving directory `~/opnfv/fuel/fuel/build/f_isoroot' | ||
| + | make: *** [all] Error 2 | ||
| + | Build: make all failed, exiting ... | ||
| + | Exiting ... | ||
| + | und plugin /root/plugins/opendaylight-0.6-0.6.1-1.noarch.rpm, installing ... | ||
| + | Eject ISO file ~/opnfv/fuel/fuel/deploy/fueltmp/deploy-opnfv-P0000.iso | ||
| + | Remove ISO directory ~/opnfv/fuel/fuel/deploy/fueltmp | ||
| + | Deleting directory ~/opnfv/fuel/fuel/deploy/fueltmp | ||
| + | Installation of Fuel Plugin /root/plugins/opendaylight-0.6-0.6.1-1.noarch.rpm failed: Traceback (most recent call last): | ||
| + | ... | ||
| + | plugin_tar = tarfile.open(plugin_path, 'r') | ||
| + | File "/usr/lib64/python2.6/tarfile.py", line 1657, in open | ||
| + | raise ReadError("file could not be opened successfully") | ||
| + | tarfile.ReadError: file could not be opened successfully | ||
| + | </code> | ||
| - | ====MANUAL iso BUILD==== | + | ===CHALLENGE #4 - WORKAROUND: REDEPLOY WITH "-nf" FLAG=== |
| + | <code> | ||
| + | Trying to SSH into Fuel VM 10.20.0.2 ... sleeping 10 seconds | ||
| + | Wait until Fuel menu is up | ||
| + | Inject our own astute.yaml settings | ||
| + | Modifying Fuel astute | ||
| + | Let the Fuel deployment continue | ||
| + | Found FUEL menu as PID 1292, now killing it | ||
| + | Wait until installation complete | ||
| + | Waiting for one minute for Fuel to stabilize | ||
| + | Delete deprecated fuel client config /etc/fuel/client/config.yaml | ||
| + | Installing Fuel Plugins | ||
| + | Found plugin /root/plugins/opendaylight-0.6-0.6.2-1.noarch.rpm, installing ... | ||
| + | Eject ISO file ~/opnfv/fuel/fuel/deploy/fueltmp/deploy-opnfv-P0000.iso | ||
| + | Remove ISO directory ~/opnfv/fuel/fuel/deploy/fueltmp | ||
| + | Deleting directory ~/opnfv/fuel/fuel/deploy/fueltmp | ||
| + | |||
| + | Installation of Fuel Plugin /root/plugins/opendaylight-0.6-0.6.2-1.noarch.rpm failed: | ||
| + | http://mirror.fuel-infra.org/mos/centos-6/mos6.1/security/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'mirror.fuel-infra.org'" | ||
| + | Trying other mirror. | ||
| + | http://mirror.fuel-infra.org/mos/centos-6/mos6.1/updates/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'mirror.fuel-infra.org'" | ||
| + | Trying other mirror. | ||
| + | </code> | ||
| + | |||
| + | **TRY TO REDEPLOY WITH „-nf” FLAG (NO FUEL):** | ||
| + | Verification of fuel plugin install looks to be failed but in reality it is successfully installed, verify it: | ||
| + | <code> | ||
| + | ssh root@10.20.0.2 (pwd: r00tme) | ||
| + | [root@opnfv_virt ~]# fuel plugins | ||
| + | </code> | ||
| + | |||
| + | Fuel will not de redeployed with this flag, so the deployment can be continued. | ||
| + | |||
| + | A fix for this is already under review. | ||
| + | |||
| + | ===CHALLENGE #5 - HANGS... WORKAROUND: REDEPLOY WITH FUEL (WITHOUT „-nf” FLAG)=== | ||
| + | <code> | ||
| + | ~/opnfv/fuel/fuel/ci$ sudo ./deploy.sh -iso /home/egbohal/opnfv/fuel/fuel/build/release/opnfv-P0000.iso -dea /home/egbohal/opnfv/fuel/fuel/deploy/templates/virtual_environment/conf/dea.yaml -dha /home/egbohal/opnfv/fuel/fuel/deploy/templates/virtual_environment/conf/dha.yaml -s /home/egbohal/opnfv/fuel/fuel/deploy/images -nf | ||
| + | |||
| + | Namespace(cleanup=False, cleanup_only=False, dea_file='/home/egbohal/opnfv/fuel/fuel/deploy/templates/virtual_environment/conf/dea.yaml', dha_file='/home/egbohal/opnfv/fuel/fuel/deploy/templates/virtual_environment/conf/dha.yaml', fuel_only=False, fuel_plugins_dir=None, iso_file='/home/egbohal/opnfv/fuel/fuel/build/release/opnfv-P0000.iso', no_fuel=True, no_health_check=False, pxe_bridge='pxebr', storage_dir='/home/egbohal/opnfv/fuel/fuel/deploy/images') | ||
| + | |||
| + | Fuel Plugins Directory not specified! No external plugins will be installed! | ||
| + | Power OFF Node controller1 | ||
| + | Power OFF Node compute1 | ||
| + | Power OFF Node compute2 | ||
| + | Power OFF Node compute3 | ||
| + | Set boot order ['network', 'hd'] on Node controller1 | ||
| + | Set boot order ['network', 'hd'] on Node compute1 | ||
| + | Set boot order ['network', 'hd'] on Node compute2 | ||
| + | Set boot order ['network', 'hd'] on Node compute3 | ||
| + | Power ON Node controller1 | ||
| + | Power ON Node compute1 | ||
| + | Power ON Node compute2 | ||
| + | Power ON Node compute3 | ||
| + | Check prerequisites | ||
| + | Check supported release: Juno on Ubuntu 14.04.1 | ||
| + | Check previous installation | ||
| + | Deleting environment 1 | ||
| + | </code> | ||
| + | |||
| + | ===CHALLENGE #6=== | ||
| + | If deployment hangs for a while, you can ssh to fuel and verify which state the deployment currently is to know where to dig in: | ||
| + | <code> | ||
| + | [root@opnfv_virt ~]# watch -n 1 fuel task | ||
| + | id | status | name | cluster | progress | uuid | ||
| + | ---|---------|----------------|---------|----------|------------------------------------- | ||
| + | 1 | ready | check_networks | 1 | 100 | e0734875-e5b9-4b05-9eb5-0737001c0ad0 | ||
| + | 4 | running | deployment | 1 | 0 | 119ff982-48f1-40cd-91a5-63f5ce02ae7d | ||
| + | 2 | running | deploy | 1 | 29 | 4a37d617-8752-41b2-b056-afc87dc8d022 | ||
| + | 3 | ready | provision | 1 | 100 | 5ec218aa-3e8d-4dae-aa46-de8fcaef5e90 | ||
| + | </code> | ||
| + | |||
| + | ===CHALLENGE #7 - SOLVED=== | ||
| + | If there is a timeout error relating to recreate-neutron-db in /var/log/docker-logs/astute/astute.log on fuel-master, this means the task for recreating neutron database during ODL plugin deployment is taking too much time and deployment will fail. | ||
| + | |||
| + | Solutions: | ||
| + | * Use a later version of the ODL plugin than that packaged with SR1 .iso (by cloning & building the ODL plugin and adding the -p flag to the deploy.sh command line). | ||
| + | * Disable ODL plugin as described in a section above. | ||
| + | |||
| + | |||
| + | ====MANUAL ISO BUILD==== | ||
| + | ===PREREQUISITES=== | ||
| + | ==SSH KEY== | ||
| + | UPLOAD SSH KEYS TO: | ||
| + | * gerrit.opnfv.org | ||
| + | * github.com | ||
| + | |||
| + | ==FIREWALL RULES== | ||
| + | ALLOW FIREWALL for HTTP, HTTPS, SSH, GIT(9418), RSYNC(873) protocols to: | ||
| + | * gerrit.opnfv.org, git.opnfv.org | ||
| + | * pypi.python.org | ||
| + | * get.docker.com | ||
| + | * p80.pool.sks-keyservers.net | ||
| + | * github.com | ||
| + | * mirror.fuel-infra.org | ||
| + | * archive.ubuntu.com | ||
| + | |||
| + | ==PKG DEPENDENCIES== | ||
| + | <code> | ||
| + | sudo apt-get install -y libvirt-bin qemu-kvm python-pip fuseiso mkisofs | ||
| + | sudo apt-get install -y python-dev libz-dev libxml2-dev libxslt-dev | ||
| + | sudo pip install pyyaml netaddr paramiko lxml scp pycrypto ecdsa | ||
| + | |||
| + | curl -sSL https://get.docker.com/gpg | sudo apt-key add - | ||
| + | curl -sSL https://get.docker.com/ | sh | ||
| + | sudo usermod -aG docker <user> | ||
| + | </code> | ||
| + | logout & login again | ||
| + | |||
| + | ===BUILD ARNO ISO=== | ||
| + | <code> | ||
| + | git clone https://gerrit.opnfv.org/gerrit/fuel | ||
| + | cd fuel/fuel/build | ||
| + | make all | ||
| + | </code> | ||
| + | |||
| + | It will generate a Centos FUEL image containing all the requirements for OPNFV deployments (e.g. OpenStack Juno, ODL Lithium, Fuel plugins): | ||
| + | * download OpenStack and other components | ||
| + | * configure docker containers | ||
| + | * Prepare bootable iso img | ||
| + | * Patch iso with fuel plugins | ||
| + | |||
| + | End of console output: | ||
| + | <code> | ||
| + | Making ISO... | ||
| + | ... | ||
| + | Product ISO is ~/opnfv/fuel/fuel/build/release/opnfv-P0000.iso | ||
| + | </code> | ||
| + | |||
| + | ====PROPOSED INVESTIGATION TOPICS==== | ||
| + | ===OVS PUPPET PLUGIN=== | ||
| + | https://review.openstack.org/#/c/222066/ | ||
| + | |||
| + | From Guo Ruijing <ruijing.guo@intel.com> | ||
| + | |||
| + | Install OVS from specified URL in ODL plugin | ||
| + | |||
| + | Uses pre_build_hook and puppet | ||
| + | |||
| + | Uploaded Sep 10, 2015 10:17 AM | ||
| + | |||
| + | Not investigated, To Be Checked! | ||
| + | |||
| + | ===DEVELOPERS PLAYGROUND=== | ||
| + | Fuel@OPNFV devel pipeline/sandbox | ||
| + | |||
| + | Jonas Bjurel jonas.bjurel@ericsson.com | ||
| + | |||
| + | Devel pipeline homepage: http://jonasbjurel.github.io/OPNFV-Playground/ | ||
| + | |||
| + | Wiki: https://github.com/jonasbjurel/OPNFV-Playground/wiki | ||
| + | |||
| + | ===FUEL PLUGIN OVS=== | ||
| + | https://github.com/lingyu1/fuel-plugin-ovs | ||
| + | |||
| + | https://github.com/lingyu1/fuel-rpm | ||
| + | |||
| + | |||
| + | ====REFERENCES==== | ||
| + | genesis/fuel/ci/README: with examples for BM/VIRTUAL/FUEL_ONLY DEPLOYMENT | ||
| + | |||
| + | genesis/fuel/deploy/README: same as above, more verbose, many template configs | ||
| + | |||
| + | genesis/fuel/build/README: build container and .iso | ||
| + | |||
| + | https://gerrit.opnfv.org/gerrit/fuel | ||
| + | |||
| + | http://artifacts.opnfv.org/arno.2015.2.0/fuel/install-guide.arno.2015.2.0.pdf | ||
| + | |||
| + | Genesis doc: http://artifacts.opnfv.org/genesis/fuel/docs/build-instructions.html | ||
| + | |||
| + | Genesis doc: http://artifacts.opnfv.org/genesis/fuel/docs/installation-instructions.html | ||
| + | |||
| + | Docker doc: https://docs.docker.com/installation/ubuntulinux/ | ||
| - | ====INVESTIGATION TOPICS==== | ||
| - | ====CHALLENGES==== | ||
| - | ====MANUAL iso BUILD==== | ||
| - | ====INVESTIGATION TOPICS==== | ||