Reputation: 11
Looking for help to start using slcli in order to run commands against Softlayer machines for shutdown, startup and reboot vms. I installed the package under ubuntu 14.04 sudo apt-get install python-softlayer, now trying to run slcli setup command, however having trouble locating where to run this from, it is not in the path on the bash shell, nor in python after I import SoftLayer, what am I missing to move forward?
Upvotes: 1
Views: 2688
Reputation: 537
Make sure python and pip are correctly installed, then run:
sudo apt-get install python-softlayer
Nevertheless if this not works, then try installing using pip:
sudo pip install softlayer
Once slcli is correctly installed running slcli
without arguments should display the options menu where you can get extra information using slcli [command] --help
Use slcli setup
to set your default values and slcli config show
to display it.
In order to manage vs with slcli use these commands:
slcli vs list
slcli vs power-on 1234567
slcli vs power-off 1234567
slcli vs reboot 1234567
1234567 would be the virtual guest id obtained using slcli vs list
It's also possible to accomplish the above using a standard python script, here some examples:
"""
Power off Guest
The scripts will look for a VSI which has an specific
hostname and the it powers off the VSI by making a single call
to the SoftLayer_Virtual_Guest::powerOff method.
Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Acount/
http://sldn.softlayer.com/reference/services/SoftLayer_Acount/getVirtualGuests
http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/setTags
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <[email protected]>
"""
import SoftLayer
"""
# Your SoftLayer API username and key.
#
# Generate an API key at the SoftLayer Customer Portal:
# https://manage.softlayer.com/Administrative/apiKeychain
"""
username = 'set me'
key = 'set me'
# The name of the machine you wish to power off
virtualGuestName = 'rctest'
# Declare a new API service object
client = SoftLayer.Client(username=username, api_key=key)
try:
# Getting all virtual guest that the account has:
virtualGuests = client['SoftLayer_Account'].getVirtualGuests()
except SoftLayer.SoftLayerAPIError as e:
"""
If there was an error returned from the SoftLayer API then bomb out with the
error message.
"""
print("Unable to retrieve hardware. "
% (e.faultCode, e.faultString))
# Looking for the virtual guest
virtualGuestId = ''
for virtualGuest in virtualGuests:
if virtualGuest['hostname'] == virtualGuestName:
virtualGuestId = virtualGuest['id']
try:
# Power off the virtual guest
virtualMachines = client['SoftLayer_Virtual_Guest'].powerOff(id=virtualGuestId)
print ("powered off")
except SoftLayer.SoftLayerAPIError as e:
"""
If there was an error returned from the SoftLayer API then bomb out with the
error message.
"""
print("Unable to power off the virtual guest"
% (e.faultCode, e.faultString))
For rebooting
"""
Reboot Virtual Guest.
It reboots a SoftLayer Virtual Guest
Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/rebootDefault
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <[email protected]>
"""
# So we can talk to the SoftLayer API:
import SoftLayer
# From pprint import pprint as pp
# For nice debug output
from pprint import pprint as pp
# Your SoftLayer API username and key.
API_USERNAME = 'set me'
API_KEY = 'set me'
# If you don't know your server id you can call getVirtualGuests() in the
# SoftLayer_Account API service to get a list of Virtual Guests
serverId = 10403817
# Create a connection to API service.
client = SoftLayer.Client(
username=API_USERNAME,
api_key=API_KEY
)
# Reboot the Virtual Guest
try:
result = client['Virtual_Guest'].rebootDefault(id=serverId)
pp(result)
except SoftLayer.SoftLayerAPIError as e:
pp('Unable to reboot the server faultCode=%s, faultString=%s'
% (e.faultCode, e.faultString))
Upvotes: 1
Reputation: 239
You can run the slcli config setup
command from anywhere provided the package installed properly. I generally recommend using pip to install the SoftLayer package.
sudo apt-get purge python-softlayer
sudo apt-get install python-setuptools python-pip
sudo pip install softlayer
Upvotes: 0