157 | | === B.2.2 Omni === |
158 | | 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 (replace gimiXX with your username): |
159 | | |
160 | | ''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. |
161 | | This script will be installed and executed on the nodes by an execute service defined in the rspec as follows: |
162 | | {{{ |
163 | | <execute command="wget -q -P /tmp http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gec15-postboot.sh ;chmod +x /tmp/gec15-postboot.sh;/tmp/gec15-postboot.sh <slicename> nodeA > /tmp/gec15-postboot.log" shell="/bin/sh"/> |
164 | | }}} |
165 | | |
166 | | ''B.2.2.2'' The rdf file has to be converted into an 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. |
167 | | |
168 | | You can download an example rspec using the following command: |
169 | | {{{ |
170 | | wget -P ~/Tutorials/GIMI/gimiXX http://emmy9.casa.umass.edu/GEC15-GIMI-Tutorial/gimi-tutorial.rspec |
171 | | }}} |
172 | | |
173 | | Change the slice name in the rspec using the following command (replace gimiXXslice with your slice name). |
174 | | {{{ |
175 | | sed -i -e 's/SLICENAME/gimiXXslice/g' ~/Tutorials/GIMI/gimiXX/gimi-tutorial.rspec |
176 | | }}} |
177 | | |
178 | | ''B.2.2.3'' Then the following commands have to be executed to set up and manage the slice with Omni: |
179 | | * Create the slice: |
180 | | {{{ |
181 | | omni.py createslice gimiXXslice |
182 | | }}} |
183 | | * Create the sliver: |
184 | | {{{ |
185 | | omni.py -a eg-sm createsliver gimiXXslice ~/Tutorials/GIMI/gimiXX/gimi-tutorial.rspec |
186 | | }}} |
187 | | * Check the status of the sliver (you are waiting for all geni_status to show ''Active''): |
188 | | {{{ |
189 | | omni.py -a eg-sm sliverstatus gimiXXslice 2>&1 | grep geni_status |
190 | | }}} |
191 | | |
192 | | Example output: |
193 | | {{{ |
194 | | "geni_status": "ready", |
195 | | "geni_status": "Active" |
196 | | "geni_status": "Active" |
197 | | "geni_status": "Active" |
198 | | "geni_status": "Active" |
199 | | "geni_status": "Active" |
200 | | "geni_status": "Active" |
201 | | "geni_status": "Active" |
202 | | "geni_status": "Active" |
203 | | "geni_status": "Active" |
204 | | "geni_status": "Active" |
205 | | "geni_status": "Active" |
206 | | |
207 | | }}} |
208 | | |
209 | | * Get the manifest of the sliver to get the login information (manifest will be saved to a file specified in the output): |
210 | | {{{ |
211 | | omni.py -a eg-sm listresources gimiXXslice -o |
212 | | }}} |
213 | | |
214 | | * Get the login information from the manifest |
215 | | |
216 | | Example: |
217 | | {{{ |
218 | | geni@geni-VirtualBox:$ grep login gimi08slice-manifest-rspec-geni-renci-org-11443-orca.xml |
219 | | <login authentication="ssh-keys" hostname="152.3.144.112" port="22" username="root"/> |
220 | | <login authentication="ssh-keys" hostname="152.3.144.111" port="22" username="root"/> |
221 | | <login authentication="ssh-keys" hostname="152.3.144.110" port="22" username="root"/> |
222 | | <login authentication="ssh-keys" hostname="152.3.144.113" port="22" username="root"/> |
223 | | <login authentication="ssh-keys" hostname="152.3.144.109" port="22" username="root"/> |
224 | | }}} |
225 | | {{{ |
226 | | geni@geni-VirtualBox:$ ssh root@152.3.144.109 |
227 | | }}} |
228 | | |
229 | | * Delete the sliver: |
230 | | {{{ |
231 | | omni.py -a eg-sm deletesliver gimiXXslice |
232 | | }}} |
233 | | |
234 | | |
235 | | ---- |
236 | | |
237 | | [[BR]] |
238 | | [[BR]] |
239 | | |