Criando o archive ConnectToExternalGPFSServer
Use o código de exemplo que é fornecido para criar um archive customizado que pode ser importado no catálogo do Cloud Pak System para uso na conexão do IBM Spectrum Scale Client com o IBM Spectrum Scale Serverexterno.
Sobre esta tarefa
cbscript.json que você inclui em um archive para ser importado para o catálogo de pacotes de scripts do Cloud Pak SystemProcedimento
- Criar um arquivo de script python e nomeá-lo connect.py. Inclua o código a seguir para se conectar ao IBM Spectrum Scale Serverexterno:
#!/usr/bin/env python import sys import subprocess import os clusterName = sys.argv[1] print "cluster name: " + clusterName nodelist = sys.argv[2] print "node list: " + nodelist filesystem = sys.argv[3] print "file system: " + filesystem print "mountpoint: /gpfs%s" % filesystem fileset = sys.argv[4] print "fileset: " + fileset linkdir = sys.argv[5] print "link directory: " + linkdir def runShellQuick(cmd): print cmd p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) (out,err) = p.communicate() rc = p.returncode print "RC is: "+str(rc) print "Message(1) is: "+str(out) print "Message(2) is: "+str(err) if rc > 0: raise Exception("The command: %s, had a return code of %d, not 0" % (str(cmd), rc)) try: mountpoint='/gpfs/%s' % filesystem serverKeyPath = "/var/mmfs/ssl/" + clusterName + "_id_rsa.pub" runShellQuick("/usr/lpp/mmfs/bin/mmremotecluster add "+clusterName+" -n "+nodelist+" -k "+serverKeyPath) runShellQuick("/usr/lpp/mmfs/bin/mmremotefs add "+filesystem+" -f "+filesystem+" -C "+clusterName+" -A yes -T "+mountpoint) runShellQuick("/usr/lpp/mmfs/bin/mmmount "+filesystem) runShellQuick("ln -s %s/%s %s" % (mountpoint, fileset, linkdir)) runShellQuick("/usr/lpp/mmfs/bin/mmremotecluster show") runShellQuick("/usr/lpp/mmfs/bin/mmremotefs show") except: print sys.exc_info()[1] sys.exit(-1)Esse script requer os parâmetros a seguir:- SERVER_CLUSTER_NAME
- (especificado como argv[1]): O nome do cluster de servidores. Por exemplo,
test111Cluster.purescale.raleigh.ibm.com. É possível localizar o nome do cluster de servidores, executando o IBM comando Spectrum Scale/usr/lpp/mmfs/bin/mmlsclusterem qualquer um dos nós do servidor - NODE_LIST
- (especificado como argv[2]): Uma lista separada por vírgula de um ou mais nós de servidor. Especifique esses nós como endereços IP. É possível localizar a lista de IPs de nós do cluster de servidores executando
o comando do IBM Spectrum Scale
/usr/lpp/mmfs/bin/mmlsclusterem qualquer um dos nós de servidor. - FILE_SYSTEM
- (specified as argv[3]): O sistema de arquivo compartilhado no servidor ao qual o cliente está solicitando acesso. Esse sistema de arquivos deve existir no cluster de servidores. É possível localizar a lista de nomes de sistema de arquivos
disponíveis executando o comando do IBM Spectrum Scale
/usr/lpp/mmfs/bin/mmlsclusterem qualquer um dos nós de servidor. - FILE_SET
- (especificado como argv[5]): o conjunto de arquivos que é criado no servidor e disponibilizado para o cliente.
- LINK_DIR
- (especificado como argv[6]): O diretório de links para criar no cliente. Use o seguinte formato:
/testFileLink
Como um teste de verificação, este script inclui dois comandos do IBM Spectrum Scale que exibem o cluster remoto e o sistema de arquivos para o qual o cliente está conectado.
- Crie um arquivo cbscript.json para o arquivo de arquivo que inclui o seguinte código:
[ { "execmode": 2, "type": "APPLICATION", "name": "Connect to External GPFS Server", "description": "Connect to External GPFS Server", "location": "/tmp/gpfs/scriptpackage2", "command": "/tmp/gpfs/scriptpackage2/connect.py", "version": "1.0", "log": "/tmp/gpfs/scriptpackage2", "ostype": "linux/unix", "timeout": 60000000, "keys": [ { "type": "string", "scriptkey": "SERVER_CLUSTER_NAME", "scriptdefaultvalue": "", "description": "Server Cluster Name", "locked": false, "required": false }, { "type": "string", "scriptkey": "NODE_LIST", "scriptdefaultvalue": "", "description": "A list of server cluster nodes, comma separated", "locked": false, "required": false }, { "type": "string", "scriptkey": "FILE_SYSTEM", "scriptdefaultvalue": "fileSystemName", "description": "File System on Server. The file system must exist on server.", "locked": false, "required": false }, { "type": "string", "scriptkey": "FILE_SET", "scriptdefaultvalue": "fileset1", "description": "Fileset created on the server, using existing one if already created", "locked": false, "required": false }, { "type": "string", "scriptkey": "LINK_DIR", "scriptdefaultvalue": "/filesetLink1", "description": "Directory on the client vm to link to the server fileset", "locked": false, "required": false } ], "commandargs": "$SERVER_CLUSTER_NAME $NODE_LIST $FILE_SYSTEM $FILE_SET $LINK_DIR" } ]O atributo
execmodeé configurado com um valor 2, indicando que esse pacote de scripts é executado manualmente apenas após a implementação. - Incluir esses arquivos em um arquivo compactado e nomeá-lo connecttoexternalgpfsserver.tgz.