使用Terraform Cloud在樱云上创建服务器
Terraform Cloud 是由 HashiCorp 公司提供的一项托管服务,用于管理 Terraform。
当与GitHub相连接的terraform存储库发生推送等操作时,将自动执行terraform命令,实现类似于Gitops的便利功能。
在多人使用Terraform的情况下,这非常有用。
由于有免费可使用的范围,所以这一次我选择在该范围内尝试使用。
在默认状态下,无法在樱云上创建服务器,因此我整理了一下步骤。
准备所需之物
-
- さくらのクラウドのAPIキー
- Githubアカウント
环境
我們預計這次將使用以下版本執行。
Terraform版本v0.11.14
适用于さくらのクラウド v1.16.4的Terraform
Github仓库地址为https://github.com/tar-xzvff/sakura-cloud-tfcloud-sample
1. 创建存储库
我会将Terraform放置在Github存储库中,用于在Sakura Cloud上创建服务器。
另外,我们将把Terraform提供者(针对Terraform的Sakura云)的二进制文件放置在相同的代码库中。
※在GitHub上提前创建一个仓库。(公开/私有皆可)
※在执行git init的目录中执行以下操作
配置插件
curl -O https://releases.usacloud.jp/terraform/terraform-provider-sakuracloud_1.16.4_linux-amd64.zip
unzip terraform-provider-sakuracloud_1.16.4_linux-amd64.zip
mkdir -p terraform.d/plugins/linux_amd64
mv terraform-provider-sakuracloud_v1.16.4 terraform.d/plugins/linux_amd64
Terraform文件的位置布局
cat <<'EOF' > server.tf
data sakuracloud_archive "ubuntu" {
filter = {
name = "Name"
values = ["Ubuntu Server"]
}
filter = {
name = "Tags"
values = ["current-stable","arch-64bit","os-linux"]
}
}
resource "sakuracloud_disk" "disk01" {
name = "disk01"
source_archive_id = "${data.sakuracloud_archive.ubuntu.id}"
}
resource "sakuracloud_server" "server01" {
name = "server01"
disks = ["${sakuracloud_disk.disk01.id}"]
password = "YourPassw0rd"
}
EOF
git add server.tf
git commit -m "Add a tf file"
git add terraform.d/plugins/linux_amd64/terraform-provider-sakuracloud_v1.16.4
git commit -m "Add terraform-provider-sakuracloud"
git push origin master
目录的最终状态
# tree
.
├── server.tf
└── terraform.d
└── plugins
└── linux_amd64
└── terraform-provider-sakuracloud_v1.16.4
2. 在Terraform Cloud上注册账号
我放弃了。
创建Workspace
3. 切换Terraform版本
最后,点击保存设置。
4. 设置API密钥和服务器创建的区域。
为了在Sakura云上创建服务器,将设置以下值。
-
- SAKURACLOUD_ACCESS_TOKEN
-
- SAKURACLOUD_ACCESS_TOKEN_SECRET
- SAKURACLOUD_ZONE
创建资源执行
结束了。