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==== |