Skip to content

Instantly share code, notes, and snippets.

@tatsuru
Created August 16, 2015 09:08
Show Gist options
  • Save tatsuru/e55887b6219ace26bb60 to your computer and use it in GitHub Desktop.
Save tatsuru/e55887b6219ace26bb60 to your computer and use it in GitHub Desktop.
- GCE 個人アカウント作る。$300 無料すごい
- なんか既にプロジェクトがあった。前に作ったGAEっぽい
- gcutil deprecated って言われてた https://cloud.google.com/compute/docs/gcutil/
-- のでこっちでやる https://cloud.google.com/compute/docs/gcloud-compute/#install
-- gcutil を PATH から消せとか zshrc への追加とかいろいろやってくれて便利
- startup-script 便利
-- gcloud compute instances create test01 --metadata startup-script="apt update; apt install -y nginx-full" --image debian-8
- metadata https://cloud.google.com/compute/docs/metadata
-- 変なヘッダつけないと 403
--- curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/disks/0/mode
-- recursive 便利。jq ほしい
--- curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/?recursive=true; echo
-- 変更待ったりメンテナンスイベント知れたりすごい便利
- mackerel 入れるスクリプトを startup で
-- https://mackerel.io/orgs/wtatsuru/instruction-agent にある通りのスクリプトをローカルで作って /tmp/mackerel-agent.sh みたいなので保存
>||
#!/bin/sh
curl -fsSL https://mackerel.io/assets/files/scripts/setup-apt.sh | sh
apt update && apt install -y mackerel-agent
sudo sh << SCRIPT
cat >>/etc/mackerel-agent/mackerel-agent.conf <<'EOF';
apikey = "XXX"
EOF
SCRIPT
||<
-- metadata-from-file で指定して起動する
>||
gcloud compute instances create test01 --metadata-from-file startup-script=/tmp/mackerel-agent.sh --image debian-8
||<
- image 作るやつ
-- 普通に作ることはできる
-- image permission いじる導線がない?public image も少ないみたい
-- export するのかな https://cloud.google.com/compute/docs/images#export_an_image_to_google_cloud_storage
-- disk 作る、--disk name=temporary-disk,device-name=temporary-disk を付けて起動、sudo /usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" /dev/sdb /mnt/tmp、sudo gcimagebundle -d /dev/sda -o /mnt/tmp/ --log_file=/tmp/abc.log
-- mackerel-agent の id は除外したいので excludes に入れる udo gcimagebundle -d /dev/sda -o /mnt/tmp/ --log_file=/tmp/abc.log --excludes=/var/lib/mackerel-agent。人に共有するときは --excludes=/var/lib/mackerel-agent,/etc/mackerel-agent
-- tarball作る、そこからimage作る、最後にインスタンス作る
-- mackerel で無事に別ホストとして起動した
-- Google Cloud Storage のバケットとオブジェクトに read permission つけたら他のアカウントからでも起動した
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment