TechBoxスマートフォン用の表示で見るTechBoxスタートアップで働くRails&機械学習エンジニアのブログ。パート1TechTweet前置きNutanixの提案やラボ環境を作る時、demo.nutanixやravelloを使えば良いのですが、やっぱり1から構築したいなぁと思い立った時の壁が、要求されるハイスペック機だったりします。VT-xが有効化されてなかったのでムリでした。今回デプロイできるかやってみました。Cloud読んで頂く前に結果ですが、失敗しています。今回はその経緯を綴りつつ、次のパート2に繋げたいと思います。現状GCPではCentOS等のKVMの動作確認のみが実施されており、その他はサポート対象外となります。今回は「ce-2018.05.01-stable.img.gz」でした。手順は省略しますが、GCPのアカウント登録を行い、プロジェクトの作成を行います。SDKを作業端末にインストールしておく必要があります。Cloudダウンロードされた「ce-2018.05.01-stable.img.gz」(2018/12/18現在)を解凍します。アップロードを実行する為、ターミナルからgcloudコマンドを実行します。先の手順でダウンロードしたimgのフルパス--osは、インポート時に対象OSのGCP用ドライバーのインストールの為に使用されます。NutanixCEだとCentOSだったら入るだろうと思い設定したら入りました。Engine→イメージの一覧に表示されます。インポートしたイメージを使用したインスタンスを作成し、NutanixCEの入ったディスクを作成します。今回はディスクを作成したいだけなので、スペックは問いません。インスタンス作成時、ブートディスクでインポートしたイメージを選択します。【インスタンスを削除する際にブートディスクを削除する】のチェックを外してください。作成したインスタンスを削除して、ディスクだけが残る状態にします。VMを有効化する為、以下のgcloudコマンドを使用します。先のインスタンス作成手順で作成されたディスクがあるゾーン(asia-northeast1-aなど)Nestedインスタンス作成ここからNested可能なNutanixCEイメージを使ってインスタンスを作成していきます。CPUやメモリは要件を満たすよう、適宜設定します。ブートディスクには先の手順で作ったNested有効化をしたNutanixCEをしていします。Tier用のディスクを追加します。作成したらインスタンスの編集に入り、「シリアルポート接続を有効化」にチェックをいれます。インスタンスの追加ディスクでSSDを選択しましたが、SSDとの認識になっていません。その為、コンソール接続をしてrotationalを変更します。※ローカルSSDスクラッチディスクを選択するとSSD認識がなされますが、インスタンスの停止ができなくなります。rootでログインして実施します。0exitインストール実行installでログインし、実行します。prompt.失敗しました。ログを確認すると、以下のようなところでエラーが出ていました。ERRrootでログインし、中身を確認していると/home/install/phx_iso/phoenix/gui.py辺りでエラーが出ているようで、単純にGUIが無い為に発生している模様?GCPだとSSHかシリアルコンソールでのみ接続可能となる為、ESXiのNestedのように画面のコンソールが使えない...。今回のような通常のインポートの手順では、NestedでAHVをインストールする事は難しいと判断しました。拡張したディスクでインスタンスを作成してGUI関連とVNCをインストールしたらどうなるか?とも考えましたが、そもそもHyperVisorにするべき事ではないのでやめました。AHVのインストールは失敗しました。次は別の方法でデプロイをして、アップしたいと思います。開発環境TweetPyCharmのGUIのみでAnacondaの仮想環境と、Djangoの開発環境を作っていきます。前提として、Anacondaはインストール済み例題のプロジェクト名はskyline例題のアプリ名はgtr例題の仮想環境名はnissanと想定します。Anacondaのインストールはこちらをご覧下さい。Project]を選択します。左のツリーから[Django]を選択し、[Location]にプロジェクトの保存先を指定します。末尾が~\untitledになっているので、作成するプロジェクトの名前に変更します。env]を選択します。ここから新規でAnacondaの仮想環境の作成が行えます。[Name]に仮想環境名を入力します。ここではnissanそうすると、[Location]にはAnacondaの仮想環境保存先が指定され、末尾が[Name]で指定したディレクトリになるハズです。最後に使用するPythonのバージョンを指定します。OKを押すとAnacondaの仮想環境の作成が始まるので、しばらく待ちます。終わったらロケーションに設定したディレクトリにnissanフォルダが作成されています。Settings]をクリックし、設定画面を表示します。admin]はお好みでチェックを入れます。ここで注意点ですが、プロジェクト名とアプリケーション名は同一の物は設定できません。以下の様な形で作成されます。manage.pyプロジェクト名配下にプロジェクト名のディレクトリと、アプリケーション名のディレクトリが作成されます。gtrと同じ構成で、apiというディレクトリがskylineディレクトリ内に追加される感じです。以上で完了となります。非常に簡単に環境を整える事ができました。AnacondaとPyCharmさえインストールしておけば、GUIだけでここまでできてしまいます。Anacondaのコマンドも難しくないので手動でもできますが、準備は簡単に超した事はないので有り難い機能かなと思います。開発環境Tweet今回はPyCharmでPythonとDJangoの開発環境を作っていきたいと思います。Pycharmはデフォルト設定とプロジェクト設定、2パターンの設定方法があります。作成した仮想環境を、Pycharmデフォルトの設定にする方法を行っていきます。プロジェクト単位での設定と、完全にGUIで構築する手順はその2で記載します。以下のリンクに沿って実行して下さい。右側上部のコンボボックスに、手順1で作成した仮想環境のpython.exeがリストアップされる事を確認し、選択します。選択すると仮想環境にインストールされているパッケージの一覧が表示されます。ここでDjangoがインストールされている事がわかります。[Apply]を押し、設定を保存します。以上でデフォルトの設定が完了しました。今回の設定をベースに立ち上げる事が可能です。今回はAnacondaの仮想環境を手動で作成し、Pycharmのデフォルト設定のみを設定する方法でした。その2では、仮想環境の構築、Djangoのインストール、新しいプロジェクトの立ち上げまでをPycharmのGUIのみで行う手順を書こうと思います。実際の所、次の手順で立ち上げる事の方が多いような気がします。ローカル開発環境としてのAnacondaのインストール方法をまとめました。僕の環境がGCPのSDKが入っている関係で、Python2とPython3の共存が必要ので、その辺りもあります。Python2と3を共存させる場合、インストーラーでPathは通さない。Pathを通すインストールディレクトリ\Anaconda3インストールディレクトリ\Anaconda3\Scriptsインストールディレクトリ\Anaconda3\Library\binAnaconda3内のシンボリックリンクを作成するそれぞれAnaconda3内にあるexeです。元のexeがある場所にそれぞれに3を付けたシンボリックリンクを作成します。ショートカットだと上手く動作しなかったので、シンボリックリンクとしました。開発する際に使用する仮想環境を作成します。これを作る事で、djangoなどのパッケージをインストールしても、プロジェクト毎に開発環境を分けられるというメリットがあります。今ある仮想環境の確認ができます。念のため、先の手順で作成した仮想環境があるか確認を行います。使用する仮想環境を選択します。activateした環境で動作する事になります。py36仮想環境無効化やらなくても良い手順です。仮想環境をオフにする場合に行って下さい。超簡単にですが、こんな感じです。pytest(仮想環境を作成するとこんな感じで追加されます)condaコマンドインストールから仮想環境の構築までは完了しました。今後は仮想環境にパッケージをインストールしたりして、開発をしていきます。その際に使用するのがcondaコマンドです。使いそうなコマンドが以下かなと思います。]以上で取り敢えずAnacondaの環境は整いました。今後はpycharmを使用したdjango開発環境を作っていきたいと思います。仮想環境へのDjangoのインストールを追記します。djangoでインストールします。listを実行してみて下さい。djangoが入っていないと思います。installでDjangoをインストールしたので、rootにはインストールされていないという事です。一つAnacondaを入れておけば、複数のPython環境を切り替えて使えるようになるというのがメリットです。日)スタートアップをしている立ち上げ兼エンジニアです。技術の事から日常の事まで綴ります。techboxjpスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。