~>非推奨のお知らせ Equinix Metalは、2026年6月30日 でサポートを終了します。すべてのMetalリソースは、このプロバイダのバージョン5.0.0で削除されます。廃止までの継続利用には、このプロバイダのバージョン4.xをご利用ください。詳細は https://docs.equinix.com/metal/ をご覧ください。
equinix_metal_device(リソース)
Equinix Metalデバイスリソースを提供します。このリソースは、デバイスの作成、変更、削除に使用できます。
~>注意: root_passwordとuser_dataを含むすべての引数は、プレーンテキストとして生の状態に保存されます。状態の機密データについての詳細はこちら。
使用例
デバイスを作成し、cool_projectに追加します。
resource "equinix_metal_device" "web1" {
hostname = "tf.coreos2"
plan = "c3.small.x86"
metro = "sv"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
}
上記と同じですが、最初はiPXE経由で起動し、プロビジョニングにIgnitionプロバイダを使用します。
resource "equinix_metal_device" "pxe1" {
hostname = "tf.coreos2-pxe"
plan = "c3.small.x86"
metro = "sv"
operating_system = "custom_ipxe"
billing_cycle = "hourly"
project_id = local.project_id
ipxe_script_url = "https://rawgit.com/cloudnativelabs/pxe/master/packet/coreos-stable-metal.ipxe"
always_pxe = "false"
user_data = data.ignition_config.example.rendered
}
メトロでパブリックIPアドレスのないデバイスを作成し、/30プライベートIPv4サブネット(4つのIPアドレス)のみを使用します。
resource "equinix_metal_device" "web1" {
hostname = "tf.coreos2"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
ip_address {
type = "private_ipv4"
cidr = 30
}
}
次に利用可能な予約済みハードウェアにデバイスをデプロイし、カスタムパーティショニングを行います。
resource "equinix_metal_device" "web1" {
hostname = "tftest"
plan = "c3.small.x86"
metro = "ny"
operating_system = "ubuntu_24_04"
billing_cycle = "hourly"
project_id = local.project_id
hardware_reservation_id = "next-available"
storage = <<EOS
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": "4096"
},
{
"label": "SWAP",
"number": 2,
"size": "3993600"
},
{
"label": "ROOT",
"number": 3,
"size": "0"
}
]
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda3",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/sda2",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
EOS
}
デバ イ ス を作成 し 、 user_data と custom_data 属性を イ ン プ レ ス で変更で き る よ う に し ます (すなわち、 デバ イ ス を破壊 し て再作成す る 必要があ り ません):
resource "equinix_metal_device" "pxe1" {
hostname = "tf.coreos2-pxe"
plan = "c3.small.x86"
metro = "sv"
operating_system = "custom_ipxe"
billing_cycle = "hourly"
project_id = local.project_id
ipxe_script_url = "https://rawgit.com/cloudnativelabs/pxe/master/packet/coreos-stable-metal.ipxe"
always_pxe = "false"
user_data = local.user_data
custom_data = local.custom_data
behavior {
allow_changes = [
"custom_data",
"user_data"
]
}
}
スキーマ
必須
operating_system(文字列) オペレーティングシステムのスラッグ。Slug を見つけるには、[Operating Systems API docs を参照するか、ページの上部に API 認証トークンを設定し、API レスポンスの JSON を参照してください。 デフォルトでは、この属性を変更するとデバイスが削除され、再作成されます。reinstallが有効な場合、デバイスは再作成される代わりにインプレースで更新されます。plan(String) デバイスのプランスラグ。プランスラッグを見つけるには、プランドキュメント を参照してください。project_id(文字列) デバイスを作成するプロジェクトの ID
オプション
always_pxe(論理値) true の場合、 OS custom_ipxe を持つデバイスはbehavior(ブロックリスト、最大: 1) (入れ子になったスキーマは以下を参照](#nestedblock--behavior))billing_cycle(文字列) 月額または時間単位custom_data(文字列、 Sensitive) デバイスの希望するカスタムデータの文字列。 デフォルトでは、この属性を変更するとプロバイダはデバイスを破棄して再作成します。reinstallが指定されているか、behavior.allow_changesに"custom_data"が含まれている場合、デバイスは再作成される代わりにインプレースで更新されます。description(文字列) デバイスの説明文字列facilities(文字列のリスト、非推奨) 導入設定を持つ施設コードのリストです。Equinix Metal APIはこのリストを参照し、お客様のデバイスを空き容量のある最初の施設に配置します。リスト項目は施設コードまたはany(ワイルドカード)でなければなりません。メトロとの競合force_detach_volumes(論理値) ボリュームがアタッチされていてもデバイ スを削除します。destroy アクションにのみ適用されます。hardware_reservation_id(String) このデバイスを配置するハードウェア予約の UUID、または次に利用可能な予約を自動的に選択する場合は next-available。hostname(String) Layer3 DHCP またはメタデータサービス構成を利用するデプロイメントで使用されるデバイスホスト名。ip_address(ブロックリスト) デバイスの IP アドレスタイプのリスト (構造は以下で説明します) (入れ子になったスキーマは以下を参照](#nestedblock--ip_address))ipxe_script_url(文字列) ホストされた iPXE スクリプトを指す URL。詳細locked(論理値) デバ イ ス が ロ ッ ク さ れてい る か、 ロ ッ ク 解除 さ れてい る か。デバイスをロックすると、デバイスの削除や再インストール、デバイスのファームウェア更新ができなくなります。metro(String) 新しいデバイスのメトロエリア。施設との競合project_ssh_key_ids(文字列の リ ス ト ) デバイ スに追加 し たいプ ロ ジ ェ ク ト SSH キーの ID の配列。こ の配列を指定する と 、 リ ス ト し たプ ロ ジ ェ ク ト SSH 鍵 (お よ び user_ssh_key_ids で指定 し たユーザーの SSH 鍵) のみが追加 さ れます。SSH鍵が指定されていない場合(user_ssh_keys_idsとproject_ssh_key_idsの両方が空リストまたは省略されている場合)、すべての親プロジェクト鍵、親プロジェクト・メンバー鍵、および組織メンバー鍵が追加されます。 プロジェクトのSSHキーはequinix_metal_project_ssh_keyリソースで作成できます。reinstall(ブロックリスト、最大: 1) (入れ子のスキーマについては以下を参照](#nestedblock--reinstall))storage(文字列) カスタムパーティショニング用の JSON。予約済みハードウェアでのみ使用可能。詳細については、[カスタムパーティショニングとRAID ドキュメントを参照してください。tags(文字列のリスト) デバイスに付けられたタグtermination_time(文字列) デバイス終了のタイムスタンプ。例:"2021/09/03T16:32:00+03:00"。タイムゾーン情報を指定しない場合、タイムスタンプはUTCであると見なされます。timeouts(ブロック、省略可能) (入れ子になったスキーマについては以下を参照](#nestedblock--timeouts))user_data(文字列、 Sensitive) デバイスに必要なユーザーデータの文字列。 デフォルトでは、この属性を変更するとプロバイダはデバイスを破棄して再作成します。reinstallが指定されているか、behavior.allow_changesに"user_data"が含まれている場合、デバイスは再作成される代わりにインプレースで更新されます。user_ssh_key_ids(文字列のリスト) SSH 鍵をデバイスに追加するユーザーの ID の配列。この配列を指定する と、 リ ス ト さ れたユーザーの SSH 鍵 (お よ び project_ssh_key_ids で指定 さ れたプ ロ ジ ェ ク ト の SSH 鍵) のみが追加 さ れます。SSH鍵が指定されていない場合(user_ssh_keys_idsとproject_ssh_key_idsの両方が空リストまたは省略されている場合)、すべての親プロジェクト鍵、親プロジェクト・メンバー鍵、および組織メンバー鍵が追加されます。ユーザーSSHキーはequinix_metal_ssh_keyリソースで作成できます。wait_for_reservation_deprovision(論理値) 予約済みハー ド ウ ェ ア内のデバイ スにのみ使用 さ れます。設定された場合、このデバイスの削除は、ハードウェア予約がプロビジョナブルとマークされるまでブロックされます(2019年8月で約4分)。
読み取り専用
access_private_ipv4(文字列) デバイスに割り当てられた ipv4 プライベート IPaccess_public_ipv4(文字列) デバイスに割り当てられた ipv4 メンテナンス IPaccess_public_ipv6(文字列) デバイスに割り当てられた ipv6 メンテナンス IPcreated(文字列) デバイスが作成された時のタイムスタンプ。deployed_facility(文字列、非推奨) デバイスが配置されている施設deployed_hardware_reservation_id(String) このデバイスが配置されたハードウェア予約の ID。次に利用可能なハードウェア予約を使用する場合に便利です。id(文字列) このリソースの ID。network(オブジェクトのリスト) デバイスのプライベート IP およびパブリック IP (v4 および v6)ネットワークの詳細。特別なネットワーク設定を行わずにデバイスを実行した場合、デバイスは3つのアドレスを持ちます: public ipv4、private ipv4、ipv6 (ネストされたスキーマについては下記を参照)network_type(String, Deprecated) レイヤ 2 ネットワーキング で使用されるデバイスのネットワーク タイプ。レイヤー3、ハイブリッド、ハイブリッドボンディング、レイヤー2-インディビジュアル、レイヤー2-ボンディングのいずれかになります。ports(オブジェクトのリスト) デバイスに割り当てられているポート (ネストされたスキーマは以下を参照)(#nestedatt--ports)root_password(文字列、 Sensitive) サーバーのルートパスワード (24 時間後に無効)。sos_hostname(String) [Serial over SSH デバイスへのアクセスに使用するホスト名です。ssh_key_ids(文字列の リ ス ト ) デバイ スに配置 さ れてい る SSH 鍵の ID の リ ス ト 。state(文字列) デバイスのステータスupdated(文字列) デバイスが最後に更新されたタイムスタンプ。
behaviorの入れ子スキーマ
オプション
allow_changes(文字列のリスト) インスタンスを再作成せずに変更を許可する属性のリスト。サポートされる属性:custom_data,user_data
ip_addressの入れ子スキーマ
必須
type(String) public_ipv4,private_ipv4,public_ipv6のいずれか。
オプション
cidr(番号) このデバイスに割り当てられた IP ブロックの CIDR サフィックスreservation_ids(文字列のリスト) ブロックを選択する予約の ID
reinstallの入れ子スキーマ
オプション
deprovision_fast(論理値) 再インス トール前に OS ディスクを00hバイトで満たすかど うか。enabled(論理値) デバイ スを破棄せずに再インス トールするかど う か。preserve_data(論理値) 再インストール時に非 OS ディスクを保持するかワイプするか。
timeoutsの入れ子スキーマ
オプション
create(文字列)delete(文字列)update(文字列)
networkの入れ子スキーマ
読み取り専用:
address(文字列)cidr(番号)family(番号)gateway(文字列)public(ブール値)
portsの入れ子スキーマ
読み取り専用:
bonded(ブール値)id(文字列)mac(文字列)name(文字列)type(文字列)