将文件从我的服务器实例传递到工作实例到 运行
Passing files from my server instance to worker instance to run
我是使用开放堆栈编程的新手 API。我想将 .java 文件发送到我的工作程序实例以执行。我怎样才能做到这一点。我到处寻找明确的描述,但找不到。我能够使用 base64 编码器传入 bash 命令来创建我的 java 文件夹,但是如何将我的 java 文件 'toDo.java' 发送给我的工作人员并将其放在java 文件夹并执行?你的回答对我有很大帮助。
public String createWorker() {
String script = Base64.getEncoder().encodeToString(("#!/bin/bash\n" + "sudo mkdir /home/ubuntu/java").getBytes());
ServerCreate server = Builders.server()
.name("Slave Machine")//instance name
.flavor("406352b0-2413-4ea6-b219-1a4218fd7d3b")//flavour id
.image("592e8ddb-03ba-407f-92a0-dec08866457e")// -image id
.keypairName("myPemKey")//key pair name
.addSecurityGroup("7cae225c-8deb-4e3b-9357-904438615a42")//Security group ID (allow SSH)
.userData(script)
.build();//build the VM with above configuration
return os.compute().servers().boot( server).getId();
}
我看到两种方法。
您可以对 Java 文件进行编码,然后让用户数据 Bash 脚本解压缩编码文本并将其存储在实例上的文件中。或者您可以创建一个 MIME Multipart Archive 并将其作为用户数据提交。
第一种方法可能更简单,例如
base64 -d >toDo.java <<END
.... encoded Java ....
END
我认为 MIME 方法更优雅,但需要对 cloudinit 的功能进行一些调查。您将创建一个 cloudinit write_files 模块以将 Java 文件和您的 Bash 脚本存放在实例上,然后将它们组合成一个 MIME 文件。
我是使用开放堆栈编程的新手 API。我想将 .java 文件发送到我的工作程序实例以执行。我怎样才能做到这一点。我到处寻找明确的描述,但找不到。我能够使用 base64 编码器传入 bash 命令来创建我的 java 文件夹,但是如何将我的 java 文件 'toDo.java' 发送给我的工作人员并将其放在java 文件夹并执行?你的回答对我有很大帮助。
public String createWorker() {
String script = Base64.getEncoder().encodeToString(("#!/bin/bash\n" + "sudo mkdir /home/ubuntu/java").getBytes());
ServerCreate server = Builders.server()
.name("Slave Machine")//instance name
.flavor("406352b0-2413-4ea6-b219-1a4218fd7d3b")//flavour id
.image("592e8ddb-03ba-407f-92a0-dec08866457e")// -image id
.keypairName("myPemKey")//key pair name
.addSecurityGroup("7cae225c-8deb-4e3b-9357-904438615a42")//Security group ID (allow SSH)
.userData(script)
.build();//build the VM with above configuration
return os.compute().servers().boot( server).getId();
}
我看到两种方法。
您可以对 Java 文件进行编码,然后让用户数据 Bash 脚本解压缩编码文本并将其存储在实例上的文件中。或者您可以创建一个 MIME Multipart Archive 并将其作为用户数据提交。
第一种方法可能更简单,例如
base64 -d >toDo.java <<END
.... encoded Java ....
END
我认为 MIME 方法更优雅,但需要对 cloudinit 的功能进行一些调查。您将创建一个 cloudinit write_files 模块以将 Java 文件和您的 Bash 脚本存放在实例上,然后将它们组合成一个 MIME 文件。