使用Digital Ocean api我遇到了user_data错误。创建了一个droplet后,没有安装nginx。在使用用户数据创建Droplet之后,我希望在我的服务器上运行以下代码。
!/bin/bash
apt-get -y update
apt-get -y install nginx
所以我在以下代码中使用了该代码:
$userData = "#!/bin/bash
apt-get -y update
apt-get -y install nginx";
为了将数据传递给api,我使用下面的代码:
$data = array(
"name" => "NewDroplet",
"region" => "ams3",
"size" => "512mb",
"image" => "ubuntu-14-04-x64",
"user_data" => $userData
);
我是api的新编码:-)如果我错了,请纠正我。
答案 0 :(得分:1)
如果没有看到其余代码或错误日志,很难确切知道错误的位置。一般来说,你似乎朝着正确的方向前进。这是一个有效的例子:
<?php
$user_data = <<<EOD
#!/bin/bash
apt-get -y update
apt-get -y install nginx
EOD;
$data = array(
'name' => 'nginx-droplet',
'region' => 'nyc3',
'size' => '512mb',
'image' => 'ubuntu-14-04-x64',
'user_data' => $user_data
);
$data_string = json_encode($data);
$ch = curl_init('https://api.digitalocean.com/v2/droplets');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer YOUR_TOKEN_API_HERE',
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
print_r($result);
?>
有关DigitalOcean元数据服务的更多信息,请参阅:An Introduction to Droplet Metadata
您可能还想查看community contributed PHP bindings for DgitialOcean's APIv2.
完全披露,其中包括我是Digitalocean的社区经理
答案 1 :(得分:0)
来自Dropbox网站:
user_data
字符串
Droplet所需用户数据的字符串。用户数据目前仅在其功能中列出元数据的区域中可用。
这只是存储在元数据服务中的信息,后来可以在obtained中存储,例如bash脚本。
我无法通过digitalocean api找到自动安装程序的方法。我假设您需要在数字海洋配置面板中设置基于密钥的授权。然后,您可以使用ssh从使用。
创建Droplet的同一脚本连接并执行命令