使い始めたばかりで Cloud Shell
事がまだ理解できていないかもしれませんので誤りがあるかもしれません。
やりたいこと
- Cloud Shell上でAnsibleの環境を作る
Home Directoryが5GByteあり永続的に利用できるとのことなので全てのモジュールがローカルにインストールできればずっと使えるだろうという安直な考え
導入
pyenvの導入
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
ファイルの作成
.bash_profileを以下の内容で作成します。
~/.bash_profile
export PATH="/home/bmxlesson/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pythonの導入
pyenv install 2.7.14
pyenv global 2.7.14
python --version
- 途中で
The Python bz2 extension was not compiled. Missing the bzip2 lib?
というエラーがでますが今回は気にしないでおいておきます。
Ansibleの導入
pip install ansible
結果ホームディレクトリ以下に導入されました。
$ ansible --version
ansible 2.4.2.0
config file = None
configured module search path = [u'/home/bmxlesson/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /home/bmxlesson/.pyenv/versions/2.7.14/lib/python2.7/site-packages/ansible
executable location = /home/bmxlesson/.pyenv/versions/2.7.14/bin/ansible
python version = 2.7.14 (default, Dec 11 2017, 16:55:06) [GCC 4.9.2]
Ansibleの利用
AnsibleからGCPを使うことを調べてみるとInventoryと操作とどちらも出来るようですね。次回試してみたいと思います。
ここでは ping をまず試してみます。暫定的にエフェメラルIPを直接書いています。きちんとするならInventoryを利用するのが正しいのだと思いますが動作確認なので
~/ansible/inventory/hosts
35.227.19.xxx ansible_ssh_private_key_file=/home/bmxlesson/.ssh/google_compute_engine
で実行してみます。
$ ansible -i ansible/inventory/hosts all -m ping
35.227.19.xxx | SUCCESS => {
"changed": false,
"ping": "pong"
}
という感じで起動したので一応動いている模様です。Cloud Shellでは自動的にVMインスタンスに接続するためのSSH鍵が自動的に作られているようなのでこれで接続は出来ます。この辺は楽ですね。実際の運用において楽がいいことかはケースバイケースですが今は楽で便利です。
次の記事