AnsibleでのGCEインスタンス立ち上げをあきらめた
AnsibleでGCEインスタンスを立ち上げようと思ったけど、 Preemptibleという横取りという意味の一日以内に落ちるけど、安い、AWSのスポットみたいなの、を指定する設定がなかったので やめました。 遊ぶだけなので、コスパ重視
とは言っても、手元のMacからAPI叩けばいいんですが、 うちでは、Mac mini を使い、外では MacBookAirを使い、家ではMacBookAirは嫁専用機と貸していて タイミングが悪いと、Ubuntuのノートを持ち歩くことになるので GCE上に一番安いインスタンスを一個立ち上げっぱなしにして、そこに他のインスタンスを立ち上げるシェルスクリプトでもおいておくとします。
万人受けするから、CentOS6.X でいいやと思ったら、思ったよりハマりました。 けっきょく、Python2.7を入れて解決したので、手順をメモ
gceの中からインスタンス作成コマンド実行
開発ツール関連のインストール
sudo yum groupinstall "Development Tools" sudo yum install python-devel
pipのインストール
cd /tmp wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py sudo python get-pip.py sudo pip install virtualenv virtualenvwrapper
python2.7のインストール
sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm sudo yum install python27 python27-devel python27-setuptools
.bashrc 関連
- .bashrc に追記
if [ -f /usr/bin/virtualenvwrapper.sh ]; then export WORKON_HOME=$HOME/.virtualenvs source /usr/bin/virtualenvwrapper.sh fi
- 読み込み
source ~/.
Virtualenvを作って入る
mkvirtualenv --python=/usr/bin/python2.7 py27
- 抜けるのと入るのだけ
deactivate py27 workon py27
pyopensslをインストールするのに必要なパッケージを入れる
sudo yum install openssl-devel libffi-devel
pyopensslのインストール(py27のvirtualenv環境で)
pip install pyopenssl
GCEの管理コンソール周り
google cloud の管理コンソールのcredentialあたりからp12ファイルを取ってくる 置く
おてもとのPCからの転送コマンド
gcloud compute copy-files hogehogekeyfile.p12 インスタンス名:~/
- CentOS6 のインスタンス上
chmod 600 hogehogekeyfile.p12 export CLOUDSDK_PYTHON_SITEPACKAGES=1 gcloud auth activate-service-account --key-file my_key_file.p12 my_service_account@developer.gserviceaccount.com gcloud config set プロジェクト名
ここまでやると、 google cloud の管理コンソールのコマンドがCentOS6から実行できる
こんなかんじのも打てるようになるよ
gcloud compute --project "プロジェクト名" \ instances create "test01" \ --zone "asia-east1-a" \ --machine-type "n1-standard-1" \ --network "default" \ --no-restart-on-failure --maintenance-policy "TERMINATE" \ --preemptible --scopes "https://www.googleapis.com/auth/devstorage.read_only" "https://www.googleapis.com/auth/logging.write" \ --tags "http-server" "https-server" \ --image "https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-6-v20150710" \ --boot-disk-type "pd-standard" \ --boot-disk-device-name "test01"