User Tools

Site Tools


deploy_opnfv_with_fuel_in_a_virtual_environment

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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==== 
deploy_opnfv_with_fuel_in_a_virtual_environment.1445965633.txt.gz · Last modified: 2015/10/27 17:07 by Gabor Halasz