softlayer iso_使用IBM SoftLayer标记简化操作

在本教程中,我们向您展示如何使用IBM SoftLayer API使用Python编程语言来标记和列出设备。 标记使您能够识别您的云基础架构资产,这有助于简化其他业务流程,例如报告和计费。 我们提供了有关安装必需的Python和SoftLayer软件包的详细说明,并描述了涵盖各种场景的几种用例,例如设置和删除标签以及通过调用相应的API列出与标签关联的设备。

通过SoftLayer提供的标记服务使您能够使用关键字标记设备,这些关键字以后可以在搜索中使用。 标记是云世界中的一个重要概念,越来越多的开发人员正在使用它来满足关键业务需求。 基本上,业务需求有两个方面:

  • 客户需要识别其云资产,例如虚拟机, 裸机存储节点等。 拥有数百种此类资产的客户将需要一种方便的方法来识别它们。
  • 许多客户受到计费要求的困扰,计费要求可能会根据组织的结构而变得复杂(可能会分为业务线,成本中心,部门等)。通过使设备能够使用关键字进行标记以方便搜索,标记通常可以提供有用的解决方案。

我们将提供有关SoftLayer标记如何工作​​的实际演示。 我们将介绍与使用云资产实现标签(例如虚拟实例和裸机)有关的用例,并向您展示如何根据用户(普通用户或主用户)或标签名称的类型来检索资产。 然后可以将结果用于报告和计费。 此处使用的代码示例是用Python编写的。

基本条款

让我们定义在此上下文中使用的一些基本术语:

虚拟服务器实例(VSI)—与其他云服务提供商相比,SoftLayer VSI提供更高程度的自定义,透明性,可预测性和自动化。 它们与SoftLayer裸机服务器无缝集成。

SoftLayer标记服务 —如上所述,标记服务使用户能够使用以后可以用于搜索的关键字标记设备。 它提供了可以使用API​​调用的方法。

API用户名 -API用户名是有权访问设备并设置标签的用户。

API密钥名称 -API密钥是每个用户唯一的十六进制字符串。 该密钥用作使用API​​执行操作的身份验证。 如果提供了错误的密钥,则SoftLayer API将不允许请求的操作。

与标签相关的关键信息

  • 标签最多可包含128个字符。
  • 尚未记录可添加到设备的标签数量的上限,但是我们成功添加了多达100个标签。
  • 标签只能添加到小写的设备中。 如果传递了大写标签名称,则它将自动转换为小写。
  • 标记中可以使用下划线,但其他特殊字符将被忽略。 例如,名称“ a * b&c”在被标记之前将转换为“ abc”; 标签中出现的特殊字符将被忽略。
  • 主用户可以列出属于主用户下创建的用户的标签的设备。
  • 标记API不支持删除标记。 可以使用GUI删除设备的各个标签。 或者,可以通过将标签名称传递为空白来使用SetTags方法删除所有标签。

获取代码:ServerTagging.py 获取代码:SetServerTags.py

你需要什么

  • 访问SoftLayer API密钥:
    1. 访问SoftLayer门户并使用有效的凭证登录。
    2. 导航到帐户 > 用户 。 然后,您将看到可用用户列表。
    3. 要查看任何用户的API密钥,请单击“ API密钥”列下方相应行上的“ 查看链接 ”。
  • Python 2.7或更高版本 -Python是一种简单易学的面向对象语言,非常适合脚本编写。 SoftLayer提供了基于Python的API程序包,可用于进行API调用。
  • get-pip.py — pip是一个软件包管理系统,用于安装以Python编写的软件包。 通过下载并安装get-pip.py文件,您将安装pip,而pip可以用于安装SoftLayer软件包(请参见下文)。
  • ServerTagging.py和SetServerTags.py-这些是Python脚本。 SetServerTags.py设置设备上的标签,ServerTagging.py根据传递给它的参数检索与标签关联的设备。

在本教程的其余部分,我们将从列出您需要安装和运行的软件开始,以探索SoftLayer标记服务的各种用途。 然后,我们向您展示了一系列用于创建和使用标签的命令,以及一些将设备与标签相关联的示例代码清单。

安装软件

步骤1.安装Python 2.7或更高版本

  1. 以root用户身份登录系统。
  2. 确保在系统上安装了以下软件包:
    • 海湾合作委员会
    • 的openssl
    • openssl-开发
  3. 下载Python 2.7:
    wget -c https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
  4. 解压Python 2.7二进制文件:
    tar xzf Python-2.7.10.tgz
  5. 配置和安装Python:
    cd Python-2.7.10
    ./configure
    make altinstall
  6. 检查Python 2.7是否已成功安装:
    python2.7 -V

步骤2.安装点

下载get-pip.py文件并安装:

wget -c https://bootstrap.pypa.io/get-pip.py
python2.7 get-pip.py

步骤3.,安装SoftLayer软件包

python2.7 -m pip install SoftLayer

步骤4.安装参数解析器

python2.7 -m pip install argparse

用例

标记用例可以分为三类:

  • 将标签添加到设备
  • 根据标签列出设备
  • 从设备上删除标签

将标签添加到设备

将标签添加到单个设备
#python2.7 SetServerTags.py -user masteruser1 -apiKey  
<Api Key>  -tag 'tagA' -fqdn sepbmi1.ibm.com

该命令产生以下输出。 后面的命令将产生类似的输出。

将多个标签添加到给定设备
python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag 'tag1,tag2,tag3' -fqdn hostbmi1.example.com
将多个标签添加到多个设备
#python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag 'tag1,tag2,tag3' -fqdn 'hostbmi1.example.com,sepbmi1.ibm.com'
将标签添加到属于用户的所有设备
#python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag 'tagB'

列出具有给定标签的所有设备

#python2.7 ServerTagging.py -user masteruser1 -apiKey <Api Key>  -tag 'tag1'

从设备上删除标签

从给定设备中删除标签
python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag '' -fqdn hostbmi1.example.com
从多个设备删除标签
#python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag '' -fqdn 'hostbmi1.example.com,sepbmi1.ibm.com'
从所有设备删除所有标签
# python2.7 SetServerTags.py -user masteruser1 -apiKey <Api Key>  -tag ''

样例代码

本部分包含基于Python的应用程序代码,这些代码演示了如何使用SoftLayer API进行标记。 这些代码示例将用户名( ‑user ),API密钥( ‑apiKey ),标签( ‑tag )和设备的主机名( ‑fqdn )传递为上述SetServerTags.py和ServerTagging.py脚本的参数。 SetServerTags.py设置设备上的标签,ServerTagging.py根据传递的参数检索与标签关联的设备。 然后,脚本将导入SoftLayer程序包并解析参数。 用户名和API密钥用于执行身份验证和创建客户端对象,此后,将调用适当的API在设备上设置标签或检索与特定标签关联的设备。

Python代码以获取与标签关联的设备
#Importing required libraries
import argparse
import SoftLayer
import sys
#Set up the argument parser to accept the command line arguments passed to the Python script. 
parser = argparse.ArgumentParser(description='Welcome !! This script fetches Server details based on Tagging')
parser.add_argument('-user',action='append', type=str,  help='Input for User name')
parser.add_argument('-apiKey',action='append', type=str,  help='Input for API Key')
parser.add_argument('-tag',action='append', type=str,  help='Input for tag name')
parser.add_argument('-fqdn',action='append', type=str,  help='Input for Device fqdn')
args = parser.parse_args()
apiUsername =  args.user[0]
apiKey = args.apiKey[0]
tagName =  args.tag[0]
#Pass Username and apiKey to the SoftLayer.client method to get Client details 
client = SoftLayer.Client(username=apiUsername, api_key=apiKey)
#Check if the authentication is successful using the client object
userId = client['Account'].getCurrentUser(mask='id')
#Get the tag data from the client object by calling getTagByTagName method
tagData = client['Tag'].getTagByTagName(tagName,filter={'references':{'usrRecordId':userId}})
# Get the ID of the tag and store all the references of the tag in the devices variable
tagId = tagData[0]['id']
devices = client['Tag'].getReferences(id=tagId,mask='resourceTableId')
#Use a for loop to browse through all the devices, and fetch the device fqdn
for each in devices:
devicefqdn=client['Hardware'].getObject(id=each['resourceTableId'],mask='fullyQualifiedDomainName')
将设备与标签关联的Python代码
#Steps are same here till the checking of authentication
# Get all servers belonging to the User using the getHardware method
serverIds = client['Account'].getHardware(mask='id,fullyQualifiedDomainName')
# To set tag on a device or multiple devices
for each in serverIds:
if (each['fullyQualifiedDomainName'] in fqdn or each['fullyQualifiedDomainName'] == fqdn): #tag is added to required fqdn
			try:
				setTag = client['Tag'].setTags(tagName,'HARDWARE',each['id'],'lll')
setTag = client['Tag'].setTags(tagName,'HARDWARE',each['id'],'lll')
# To set tags on all the devices belonging to a user
for each in serverIds:
		try:
			setTag = client['Tag'].setTags(tagName,'HARDWARE',each['id'],'lll')

结论

本教程向您介绍了SoftLayer标签,并向您展示了如何使用API​​关联标签以及如何从API检索标签。 此外,我们还探讨了涉及添加,列出和删除标签的各种用例。 我们希望对SoftLayer标记功能的简短讨论能增进您对标记的理解,并向您展示如何帮助您简化业务运营。

最后,我们要感谢两位同事的大力支持和帮助:

  • Vivekanandan Subramanian – IBM云技术销售执行架构师
  • Prabhakar Attaluri – IBM云技术销售杰出工程师

翻译自: https://www.ibm.com/developerworks/cloud/library/cl-softlayer-tagging-trs/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值