AWS-CLIとGCP:Cloud-SDK環境のバージョンアップ

以前Hyper-Vに作成していたGCPの開発環境AWSの開発環境が1年くらいたつのでそろそろバージョンアップでもしておくかと思って、作業してみた。
定期的にランタイムとかのバージョンとか上がるし、CLIツールも新しい方が色々とできたりするみたいなので、一応バージョンアップ方法も備忘録的に置いておこうと思った次第です。作業自体は難しくないですが、pyenvのバージョン切り替えが少し落とし穴だったりする。ちなみにpython3.8にはAWS-CLIがpipで拾えなかったのとGCP側も不安しかなかったのとバージョンが双方でずれるのも嫌だったので両方とも3.7.7にて作業しました。

CloudSDKについては以前はaptでやってたんですが、sudo使わないと開発できないとか厄介なのが嫌なので、今回はtar.gzの方で対応することにしました。

希望を言うとそれぞれのクラウド用開発環境を個別に作るんじゃなくて一括でボンと入れたら全部が入ってくれるようなのが欲しいんだがなぁ。そして自動化にしても各社ばらばらでなく統一的に記述できるような方式の標準規格が欲しい。

近しいとしたらこんな感じだけど、、、ただ個社の独自仕様まで吸収できていないので
Teraform
SevelessFramework
その辺がつらい、、、

理想を言えばプログラムを書いてなんか中間のライブラリインポートしてそのライブラリを利用して、設定ファイルと一緒にデプロイすれば各クラウドベンダーマネージドサービスを使うサーバレスなアプリが1コードでできるというのが理想なのよなぁ。


◆作業手順

1.pyenvバージョンアップ

$ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
$ pyenv update
$ pyenv versions
  system
* 2.7.16 (set by /home/users/.python-version)
  3.7.3
$ pyenv install --list
$ pyenv install 3.7.7
$ pyenv install 3.8.2

2.pythonバージョン切替

$ which python
/home/users/.pyenv/shims/python
$ pyenv global 3.7.7
$ vi .python-version
#以下の通り書き換え
-----
3.7.7
-----
$ pyenv versions
  system
  2.7.16
  3.7.3
* 3.7.7 (set by /home/users/.python-version)
  3.8.2

3.AWS-CLIバージョンアップ

#sudoでpyenv使えないのでsudoでも使えるように設定
$ sudo update-alternatives --config editor
$ sudo apt remove nano
$ sudo visudo
#追記
------
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bini:/home/users/.pyenv/shims/python" #←最後部に追記 /home/users/.pyenv/shims/python
------

#AWS-CLIのバージョンアップ
$ pip install --upgrade pip
$ pip install awscli --upgrade --user
$ aws --version
aws-cli/1.16.152 Python/3.7.3 Linux/4.15.0-91-generic botocore/1.12.142
$ aws --version
aws-cli/1.18.39 Python/3.7.7 Linux/4.15.0-91-generic botocore/1.15.39

4.CloudSDK再インストール

#既存のCloudSDKアンインストール
$ sudo apt remove -y google-cloud-sdk google-cloud-sdk-app-engine-python google-cloud-sdk-app-engine-python-extras google-cloud-sdk-datastore-emulator google-cloud-sdk-pubsub-emulator google-cloud-sdk-cbt google-cloud-sdk-bigtable-emulator kubectl
$ rm google-cloud-sdk
$ rm -rf ./config/gcloud/*

#CloudSDK再導入
$ wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-288.0.0-linux-x86_64.tar.gz
$ tar -xvzf google-cloud-sdk-288.0.0-linux-x86_64.tar.gz
$ rm google-cloud-sdk-288.0.0-linux-x86_64.tar.gz
$ cd google-cloud-sdk/
$ ./install.sh
Welcome to the Google Cloud SDK!
To help improve the quality of this product, we collect anonymized usage data

~中略~

Do you want to help improve the Google Cloud SDK (y/N)? y

~中略~

Modify profile to update your $PATH and enable shell command
completion?

Do you want to continue (Y/n)? Y

The Google Cloud SDK installer will now prompt you to update an rc
file to bring the Google Cloud CLIs into your environment.

Enter a path to an rc file to update, or leave blank to use
[/home/users/.bashrc]:  #そのままEnter

~中略~

For more information on how to get started, please visit:
  https://cloud.google.com/sdk/docs/quickstarts

$ export CLOUDSDK_PYTHON=/home/matarain/.pyenv/shims/python3

#別ターミナルで実行
#初期設定
$ gcloud --version
Google Cloud SDK 288.0.0
bq 2.0.56
core 2020.04.03
gsutil 4.49
$ gcloud init --console-only
pyenv: python2: command not found
Welcome! This command will take you through the configuration of gcloud.
~中略~

#oAuth認証設定
You must log in to continue. Would you like to log in (Y/n)? Y

Go to the following link in your browser:

~略~

Enter verification code:  ←ブラウザに表示されたコード貼付

#CloudUtil利用プロジェクト選択
You are logged in as: [XXXXX@gmail.com].

Pick cloud project to use:
 [1] 
 [2] 
 [3] 
 [4] 
 [5] 
 [6] 
 [7] 
 [8] 
 [9] Create a new project
Please enter numeric choice or text value (must exactly match list
item):7

Do you want to configure a default Compute Region and Zone? (Y/n)?  Y

#GCEのデフォルトロケーション設定
Which Google Compute Engine zone would you like to use as project
default?
~中略~
Did not print [18] options.
Too many options [68]. Enter "list" at prompt to print choices fully.
Please enter numeric choice or text value (must exactly match list
item):34

~中略~

* Run `gcloud --help` to see the Cloud Platform services you can interact with. And run `gcloud help COMMAND` to get help on any gcloud command.
* Run `gcloud topic --help` to learn about advanced features of the SDK like arg files and output formatting


◆参考サイト

1.AWS-CLIバージョンアップ

https://qiita.com/mo0013/items/036112149428c5bed763
https://qiita.com/darshuheider/items/74aa54ffb81ee8cbe0ff

2.CloudSDKのpython3化

https://qiita.com/gecko655/items/b9e590ce454ac9dd7da4
https://cloud.google.com/sdk/docs?hl=ja#linux
https://apps-gcp.com/cloud-sdkinstall-commentary/
https://netrandum.com/google-cloud-sdk-authorizing/487

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)