fstabのデバイス指定をUUIDにする

ちょっと前に見かけたこちらのツイート

/dev/sda	/	 ext4	defaults	0 0
/dev/sdb	/data	 ext4	defaults	0 0

fstabにこういったデバイス名の指定をしているとsdasdbがOS再起動等でデバイス名が入れ替わってしまいトラブルが起きてしまいます。
そういった場合はUUIDで指定してあげることでマウントされるデバイスを任意に指定出来るためこういった事前にトラブルを防ぐことが出来ます。

bukidコマンドを使って各デバイスのUUIDを調べます。

$ blkid
/dev/sda: UUID="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" TYPE="ext4" PARTUUID="xxxxx-xx"
/dev/sdb: UUID="yyyyy-yyyyy-yyyyy-yyyyy-yyyyy" TYPE="ext4" PARTUUID="yyyyy-yy"

sdasdbのUUIDが確認出来ます。

このUUIDを使ってfstabにデバイスを指定します。

UUID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /	 ext4	defaults	0 0
UUID=yyyyy-yyyyy-yyyyy-yyyyy-yyyyy /data	 ext4	defaults	0 0

google-betaのエラーが出たときの対処法

概要

いつからのタイミングかTerraformでGCPのリソース管理している環境で以下エラーが出るようになってしまいました。

Error: module : provider alias must be defined by the module: google-beta


対応

以下のようにproviderの設定でgoogle-betaの設定を追加することで解消しました。

provider "google" {
  project = "my-project-id"
  region  = "asia-northeast1"
}

provider "google" {
  project = "my-project-id"
  region  = "asia-northeast1"
}
provider "google-beta" {
  project = "my-project-id"
  region  = "asia-northeast1"
}

変更後、terraform initでOKです。

TerraformでGCEの静的内部IPの設定

概要

TerraformでGCPのGCEのローカルIPを固定する設定の例です。

内部IPを10.146.0.1に設定している例です。

resource "google_compute_instance" "default" {
  name         = "test"
  machine_type = "n1-standard-1"
  zone         = "asia-northeast1-a"

  boot_disk {
    initialize_params {
      image = "centos-cloud/centos-7"
    }
  }

  network_interface {
    network       = "default"
    network_ip    = "10.146.0.1"
    access_config = {}
  }
}