67 | | ''B.2.1.2'' Before experimenters can use Flukes, its properties file has to be modified. |
68 | | Open the properties file with your favorite text editor (e.g., nano): |
69 | | {{{ |
70 | | $ nano ~/.flukes.properties |
71 | | }}} |
72 | | |
73 | | Then change the file as indicated below. |
74 | | |
75 | | {{{ |
76 | | # Do not change these |
77 | | orca.xmlrpc.url=https://geni.renci.org:11443/orca/xmlrpc,https://rci-hn.exogeni.net:11443/orca/xmlrpc,https://bbn-hn.exogeni.net:11443/orca/xmlrpc,https://nicta-hn.exogeni.net:11443/orca/xmlrpc |
78 | | ssh.options=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -X |
79 | | xterm.path=/usr/bin/xterm |
80 | | |
81 | | # replace XX with your user index (with leading 0, if necessary) |
82 | | user.keystore=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX.jks |
83 | | ssh.key=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key |
84 | | ssh.pubkey=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key.pub |
85 | | |
86 | | image1.name=gec15-gimi-image |
87 | | image1.url=http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec-15-tutorial.xml |
88 | | image1.hash=fb135d730ec37d92a6f4c873f26cea72af1c0a31 |
89 | | }}} |
90 | | |
91 | | The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_properties.mp4 video] gives more details on the necessary changes of the file. |
92 | | |
93 | | Now start Flukes by double-clicking on the icon on the VM's desktop. |
94 | | |
95 | | ''B.2.1.3'' In the tutorial VM start Flukes and load gimiXX.rdf. (Also here, replace gimiXX with your assigned user ID.) In Flukes select ''Files->Open Request->select gimiXX.rdf in ~/Tutorials/GIMI/gimiXX''. |
96 | | |
97 | | ''B.2.1.4'' Verify settings and create slice. |
98 | | * First select the the ''Request View'' tab. |
99 | | * To verify settings right-click on each node and select ''Edit Properties'', inspect, and close if everything looks right. In case you detect an error (which we don't expect for the tutorial) you can fix it here and then save a new version of the RDF file by clicking on ''File'' from the top menu in Flukes and selecting ''Save Request''. |
100 | | * To create a slice enter your slice name ''gimiXX-tutorial'' in to the empty field next to the ''Submit Request'' button and the click the latter. |
101 | | |
102 | | ''B.2.1.5'' To check if all the resources have come up go to the ''Manifest View'' tab and enter your slice name (''gimiXX-tutorial'') into the empty field. Then click ''Query for Manifest''. After a short moment a box with all the requested resources and their respective status will appear. (This box does not update automatically and you have to hit the ''Query for Manifest'' button again to receive and update). |
103 | | |
104 | | ''B.2.1.6'' GIMI specific post boot script. Each node uses the same image but runs a slightly different post boot script. The latter allows for individualized settings at each node. An example post boot script for NodeA is shown below: |
105 | | {{{ |
106 | | #!/bin/bash |
107 | | |
108 | | # Experiment slice name used by OMF. Should be unique for each experiment |
109 | | sn=gimi30 |
110 | | |
111 | | # For now ExoGENI does not assign the "Name" assigned in Flukes as hostname. This will not be needed in future versions. |
112 | | hostname nodeA |
113 | | |
114 | | curl http://emmy9.casa.umass.edu/pingWrap.rb -o /root/pingWrap.rb |
115 | | chmod +x /root/pingWrap.rb |
116 | | |
117 | | #Adds the slice name to the resource controller configuration file |
118 | | curl http://emmy9.casa.umass.edu/omf-resctl.yaml -o /etc/omf-resctl-5.4/omf-resctl.yaml |
119 | | perl -i.bak -pe "s/\:slice\:/\:slice\: $sn/g" /etc/omf-resctl-5.4/omf-resctl.yaml |
120 | | |
121 | | # The above updates require a restart of the OMF resource controller. |
122 | | /etc/init.d/omf-resctl-5.4 restart |
123 | | }}} |
124 | | |
125 | | |
126 | | ---- |
127 | | |
128 | | {{{ |
129 | | #!html |
130 | | <span style="color:red">This section will NOT be covered during the tutorial!! Nevertheless, we describe in Section B.2.2 how you can use Omni to set up and ExoGENI slice should you consider not using Flukes for future experiments. |
131 | | </span> |
132 | | }}} |
133 | | |
134 | | === B.2.2 Omni === |
135 | | In this section, we present an alternative approach to setup a slice by using the Omni command line tools to reserve resources. To perform this task the following steps have to be executed: |
136 | | |
137 | | ''B.2.2.1'' The post boot script that is used in the case of slice reservation via Flukes has to be converted from an RDF file into a single bash script that takes slice name and node ID as arguments. |
138 | | This script will be installed and executed on the nodes by an execute service defined in the rspec as follows: |
139 | | {{{ |
140 | | <execute command="wget -q -P /tmp http://pc205.emulab.net/gimi/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh johGimi09-both nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/> |
141 | | }}} |
142 | | |
143 | | ''B.2.2.2'' The rdf file has to be converted into an rspec (see attached gec15-tutorial-gimi09-nospec.rspec). You will notice that the rspec has to be slice-specific because it needs to pass the slice name into the post boot script. |
144 | | |
145 | | ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni: |
146 | | * Create the slice: |
147 | | {{{ |
148 | | omni.py createslice johGimi09-tutorial |
149 | | }}} |
150 | | * Create the sliver: |
151 | | {{{ |
152 | | omni.py -a eg-sm createsliver johGimi09-tutorial ~/Tutorials/GIMI/gimi09/gec15-tutorial-gimi09-nospec.rspec |
153 | | }}} |
154 | | * Check the status of the sliver: |
155 | | {{{ |
156 | | omni.py -a eg-sm sliverstatus johGimi09-tutorial 2>&1 | grep geni_status |
157 | | }}} |
158 | | * Get the manifest of the sliver (to get the login information): |
159 | | {{{ |
160 | | omni.py -a eg-sm listresources johGimi09-tutorial -o |
161 | | }}} |
162 | | * Delete the sliver: |
163 | | {{{ |
164 | | omni.py -a eg-sm deletesliver johGimi09-tutorial |
165 | | }}} |
166 | | |
167 | | ---- |
168 | | |
169 | | === B.2.3 Register slice and node names (create Pubsub nodes) === |
| 67 | ''B.2.1.2'' Register slice and node names (create Pubsub nodes): |
| 87 | |
| 88 | |
| 89 | ''B.2.1.3'' Before experimenters can use Flukes, its properties file has to be modified. |
| 90 | Open the properties file with your favorite text editor (e.g., nano): |
| 91 | {{{ |
| 92 | $ nano ~/.flukes.properties |
| 93 | }}} |
| 94 | |
| 95 | Then change the file as indicated below. |
| 96 | |
| 97 | {{{ |
| 98 | # Do not change these |
| 99 | orca.xmlrpc.url=https://geni.renci.org:11443/orca/xmlrpc,https://rci-hn.exogeni.net:11443/orca/xmlrpc,https://bbn-hn.exogeni.net:11443/orca/xmlrpc,https://nicta-hn.exogeni.net:11443/orca/xmlrpc |
| 100 | ssh.options=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -X |
| 101 | xterm.path=/usr/bin/xterm |
| 102 | |
| 103 | # replace XX with your user index (with leading 0, if necessary) |
| 104 | user.keystore=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX.jks |
| 105 | ssh.key=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key |
| 106 | ssh.pubkey=/home/geniuser/Tutorials/GIMI/gimiXX/ssh/gimiXX_key.pub |
| 107 | |
| 108 | image1.name=gec15-gimi-image |
| 109 | image1.url=http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec-15-tutorial.xml |
| 110 | image1.hash=fb135d730ec37d92a6f4c873f26cea72af1c0a31 |
| 111 | }}} |
| 112 | |
| 113 | The following [http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/videos/Flukes_properties.mp4 video] gives more details on the necessary changes of the file. |
| 114 | |
| 115 | Now start Flukes by double-clicking on the icon on the VM's desktop. |
| 116 | |
| 117 | ''B.2.1.4'' In the tutorial VM start Flukes and load gimiXX.rdf. (Also here, replace gimiXX with your assigned user ID.) In Flukes select ''Files->Open Request->select gimiXX.rdf in ~/Tutorials/GIMI/gimiXX''. |
| 118 | |
| 119 | ''B.2.1.5'' Verify settings and create slice. |
| 120 | * First select the the ''Request View'' tab. |
| 121 | * To verify settings right-click on each node and select ''Edit Properties'', inspect, and close if everything looks right. In case you detect an error (which we don't expect for the tutorial) you can fix it here and then save a new version of the RDF file by clicking on ''File'' from the top menu in Flukes and selecting ''Save Request''. |
| 122 | * To create a slice enter your slice name ''gimiXX-tutorial'' in to the empty field next to the ''Submit Request'' button and the click the latter. |
| 123 | |
| 124 | ''B.2.1.6'' To check if all the resources have come up go to the ''Manifest View'' tab and enter your slice name (''gimiXX-tutorial'') into the empty field. Then click ''Query for Manifest''. After a short moment a box with all the requested resources and their respective status will appear. (This box does not update automatically and you have to hit the ''Query for Manifest'' button again to receive and update). |
| 125 | |
| 126 | ''B.2.1.7'' GIMI specific post boot script. Each node uses the same image but runs a slightly different post boot script. The latter allows for individualized settings at each node. An example post boot script for NodeA is shown below: |
| 127 | {{{ |
| 128 | #!/bin/bash |
| 129 | |
| 130 | # Experiment slice name used by OMF. Should be unique for each experiment |
| 131 | sn=gimi30 |
| 132 | |
| 133 | # For now ExoGENI does not assign the "Name" assigned in Flukes as hostname. This will not be needed in future versions. |
| 134 | hostname nodeA |
| 135 | |
| 136 | curl http://emmy9.casa.umass.edu/pingWrap.rb -o /root/pingWrap.rb |
| 137 | chmod +x /root/pingWrap.rb |
| 138 | |
| 139 | #Adds the slice name to the resource controller configuration file |
| 140 | curl http://emmy9.casa.umass.edu/omf-resctl.yaml -o /etc/omf-resctl-5.4/omf-resctl.yaml |
| 141 | perl -i.bak -pe "s/\:slice\:/\:slice\: $sn/g" /etc/omf-resctl-5.4/omf-resctl.yaml |
| 142 | |
| 143 | # The above updates require a restart of the OMF resource controller. |
| 144 | /etc/init.d/omf-resctl-5.4 restart |
| 145 | }}} |
| 146 | |
| 147 | |
| 148 | ---- |
| 149 | |
| 150 | {{{ |
| 151 | #!html |
| 152 | <span style="color:red">This section will NOT be covered during the tutorial!! Nevertheless, we describe in Section B.2.2 how you can use Omni to set up and ExoGENI slice should you consider not using Flukes for future experiments. |
| 153 | </span> |
| 154 | }}} |
| 155 | |
| 156 | === B.2.2 Omni === |
| 157 | In this section, we present an alternative approach to setup a slice by using the Omni command line tools to reserve resources. To perform this task the following steps have to be executed: |
| 158 | |
| 159 | ''B.2.2.1'' The post boot script that is used in the case of slice reservation via Flukes has to be converted from an RDF file into a single bash script that takes slice name and node ID as arguments. |
| 160 | This script will be installed and executed on the nodes by an execute service defined in the rspec as follows: |
| 161 | {{{ |
| 162 | <execute command="wget -q -P /tmp http://pc205.emulab.net/gimi/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh johGimi09-both nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/> |
| 163 | }}} |
| 164 | |
| 165 | ''B.2.2.2'' The rdf file has to be converted into an rspec (see attached gec15-tutorial-gimi09-nospec.rspec). You will notice that the rspec has to be slice-specific because it needs to pass the slice name into the post boot script. |
| 166 | |
| 167 | ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni: |
| 168 | * Create the slice: |
| 169 | {{{ |
| 170 | omni.py createslice johGimi09-tutorial |
| 171 | }}} |
| 172 | * Create the sliver: |
| 173 | {{{ |
| 174 | omni.py -a eg-sm createsliver johGimi09-tutorial ~/Tutorials/GIMI/gimi09/gec15-tutorial-gimi09-nospec.rspec |
| 175 | }}} |
| 176 | * Check the status of the sliver: |
| 177 | {{{ |
| 178 | omni.py -a eg-sm sliverstatus johGimi09-tutorial 2>&1 | grep geni_status |
| 179 | }}} |
| 180 | * Get the manifest of the sliver (to get the login information): |
| 181 | {{{ |
| 182 | omni.py -a eg-sm listresources johGimi09-tutorial -o |
| 183 | }}} |
| 184 | * Delete the sliver: |
| 185 | {{{ |
| 186 | omni.py -a eg-sm deletesliver johGimi09-tutorial |
| 187 | }}} |
| 188 | |
| 189 | |