I would like to automate the attachment of a Cloud Block Storage volume to an OnMetal server running CentOS 7 by writing a Python script that make uses of the pyrax Python module. Do you know how to do it?
How to attach a Cloud Block Storage volume to an OnMetal server with pyrax?
184 Views Asked by Erik Sjölund At
1
There are 1 best solutions below
Related Questions in RACKSPACE-CLOUD
- Rackspace - How to export a Block Storage Volume?
- How do I add a Rackspace cloud database as a data source in PhpStorm?
- Server Move to AWS Cloud
- Incorrect content type using rackspace form post
- How to upload documents on Rackspace from Laravel 8.x
- Rails Fog create a file based on a remote link
- Salt-cloud rackspace configuration that works
- Rackspace cloud taking too long to upload?
- Format for connecting to rackspace via CyberDuck CLI
- Https urls in Laravel - Rackspace with Filesystem
- Kubernetes - unable to start kubelet with cloud provider openstack (error fetching current node name from cloud provider)
- Rackspace saving file in text formats
- Upload to rackspace with django
- How to download a mysql dump from Rackspace cloud
- Sonata Media CDN Rackspace
Related Questions in RACKSPACE
- Rackspace - How to export a Block Storage Volume?
- Rackspace Create Mailbox Error: Entity of type Mailbox identified by [email protected] was not found
- Drawing servers Rack using html/css or any python library
- Incorrect content type using rackspace form post
- How to upload documents on Rackspace from Laravel 8.x
- Content Security Policy: Loading failed for the script
- Class 'Symfony\Component\EventDispatcher\Event' not found in Laravel/Lumen
- Salt-cloud rackspace configuration that works
- Zend framework 3 and rackspace authenticate() is not working
- Rackspace cloud taking too long to upload?
- Rackspace Email Apps API retrieving customer status (enable / disable)
- How to access rackspace calendar
- MySQL database IP address from rackspace or google cloud?
- larger size db export from rackspace
- rackspace sub container not uploading file
Related Questions in PYRAX
- Pyrax API: Error in creating Compute/Memory flavors with boot-volumes
- How to attach a Cloud Block Storage volume to an OnMetal server with pyrax?
- Can't access register variable in a loop
- pyrax cloud monitoring checks test
- Error when trying to authenticate in Rackspace
- Identity type in Rackspace in python
- On what port Pyrax connects to rackspace cloud containers?
- Set Rackspace CloudServer Metadata with pyrax
- Error using pyrax module on OSX
- How can I get permanent URL of file uploaded on rackspace using python pyrax
- Set SSH Host IP Address on Rackspace for Ansible
- pip "pyrax" dependency with iron worker
- Pyrax : This server could not verify that you are authorized to access the document you requested
- Does pyrax use servicenet if it's possible, or should I set it manually?
- How do I make Cloudfiles FormPost return the "Access-Control-Allow-Origin" header to enable CORS?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Attaching a Cloud Block Storage volume to an OnMetal server is a bit more complicated than attaching it to a normal Rackspace virtual server. That you will notice when you try to attach a Cloud Block Storage volume to an OnMetal server in the Rackspace web interface Cloud Control Panel, as you would see this text:
Note: When attaching volumes to OnMetal servers, you must log into the OnMetal server to set the initiator name, discover the targets and then connect to the target.
So you can attach the volume in the web interface but additionally you need to log in to the OnMetal server and run a few commands. The actual commands can be copy-and-pasted from the web interface into the terminal of the OnMetal server.
Also before detaching you need to run a command.
But the web interface is actually not needed. It can be done with the Python module pyrax.
First install the RPM package iscsi-initiator-utils on the OnMetal server
Assuming the volume_id and the server_id are known, this Python code first attaches the volume and then detaches the volume. Unfortunately, the mount_point argument attach_to_instance() is not working for OnMetal servers, so we would need to use the command
lsblk -n -dbefore and after attaching the volume. By comparing the outputs we would then deduce the device name used for the attached volume. (The part to deduce the device name is not taken care of by the following Python code).Running the python code looks like this
Just, one additional note:
Although not mentioned in the official Rackspace documentation
https://support.rackspace.com/how-to/attach-a-cloud-block-storage-volume-to-an-onmetal-server/
in a forum post from 5 Aug 2015 the Rackspace Managed Infrastructure Support also recommends running
to make the connection persistent so that it automatically restarts the iscsi session upon startup.
Update
Regarding deducing the new device name: Major Hayden writes in a blog post that
could be used to find a path to the new device. If you would like to deference any symlinks, I guess this would work