GitHubからのSSH用の公開鍵を取得
さくらのクラウドのコントロールパネルには、GitHub上のユーザー名を指定してSSH用の公開鍵を取得しサーバ作成時に利用する機能があります。
この機能をTerraformで実現するためにhttpプロバイダーが利用可能です。
# GitHub上の公開鍵を参照するためのデータソース
data "http" "key" {
url = "https://github.com/<GitHubのユーザ名>.keys" # 任意のユーザー名に置き換える
}
GitHubから公開鍵を取得してサーバ作成に利用するコード例は以下の通りです。
terraform {
required_providers {
http = {
source = "hashicorp/http"
version = "~> 3"
}
sakuracloud = {
source = "sacloud/sakuracloud"
version = "~> 2"
}
}
}
data "sakuracloud_archive" "ubuntu" {
os_type = "ubuntu2204"
}
resource "sakuracloud_disk" "example" {
name = "example"
source_archive_id = data.sakuracloud_archive.ubuntu.id
}
resource "sakuracloud_server" "example" {
name = "example"
disks = [sakuracloud_disk.example.id]
network_interface {
upstream = "shared"
}
disk_edit_parameter {
disable_pw_auth = true
ssh_keys = split("\n", trimspace(data.http.key.body)) // Note: 複数の公開鍵が登録されている場合は改行で結合されている
}
}
data "http" "key" {
url = "https://github.com/<GitHubのユーザ名>.keys" # 任意のユーザー名に置き換える
}