2017年8月11日金曜日

GCE の VM から Source Repositories のソースを取得する

SYSTEM_KDです。


メモ程度の内容ですが、GCE (Google Compute Engine)のVM から プライベートリポジトリの Source Repositories にアクセスしてソースを取得する(git clone)する方法です。


権限を設定する

ソースを Source Repositories で管理しようと思ったのですが、いざ clone しようとすると、権限無いですよのエラーで行えないという状態になりました。

ERROR: (gcloud.source.repos.clone) PERMISSION_DENIED: Request had insufficient authentication scopes.


(ちなみに、VM側は、Centos7 で LAMP 環境になってます。)


具体的には次のコマンドで、clone 作成しようとすると、上記のエラーが発生します。

gcloud source repos clone <レポジトリ> --project=<プロジェクト名>


ということで、権限を設定すれば良いはずなので、IAM の設定にて、権限を色々付けてみたのですが、いっこうに解決する気配がありません。。


これは、権限設定方法が違うかも・・・と思い調べ見ると 見事に違ってました ^^;


正しい設定場所としては、VM の対象インスタンスの Cloud API アクセス スコープ という部分でした。

image


Cloud ソース レポジトリ ・・・ 無効!!


一旦、VM インスタンスを停止しないと変更が行なえないので、停止して個別に設定。


image

書き込むを行う予定はないので、読込だけ許可。


無事成功。。と思いきや ユーザとパスワードを求められる


gcloud init してないからかな、、これはこれで権限が必要そう。。


ということで、手動で認証情報を生成してセットすることにします。


image


レポジトリ画面の、「クローン」を押すと表示されるモーダル画面にて、「手動で生成した認証情報」を選択するとでてくる、「Git 認証情報の生成と保存」から パスワードをゲットして、クローンできました。



しかし,VM インスタンスも、プライベートリポジトリも無料で使えるとか、GCP はありがたい(笑)

2017年7月29日土曜日

AzureのMySQLへEC-CUBEから接続

SYSTEM_KDです。
 
Nexus5Xが再起動ループに陥ったあたりからずっとブログを更新していなかったのですが、久々の投稿です。
 
Azuren にある開発者のための管理されたMySQLデーターベース(Azure Database for MySQL)にEC-CUBE3 から接続する方法になります。
 
 

まずはMySQLを用意する

 
ということで、早速。
まずは、Azure 環境に MySQL を用意します。
Azure のコンソールに入ったら、メニューの一番下にある「More services >」を選択します。
 
 
すると、サービスの一覧が表示されますので、検索ボックスに「mysql」と入力します。
mysql という文言で、絞込検索が行われるので、「MySQLサーバー向けの・・・」を選択します。
 
 
 
選択すると、MySQL サーバー向けの Azure データーベース 画面が表示されますので、「+追加」をクリックして MySQL サーバーを作成します。
 
 
 
 
下記の情報を入力または選択して、作成ボタンにて作成します。
・サーバー名
・リソースグループ
・サーバー管理者ログイン名
・パスワード
・パスワードの確認
・場所
・バージョン
・価格レベル
 
気をつける部分としましては、「バージョン」と「価格レベル」になるかと思います。
 
バージョンは、デフォルトで 5.7 が選択されていますが、色々と難しいので 5.6 を選択するのが無難かと思います。
(※完全に個人的意見です)
 
価格レベルは、Basic がデフォルとで選択されている(というか、プレビュー版なのでBasicしか選択できない)のですが、コンピューティングユニットが 100 の全力設定になっているので、ミニマムの 50 に変更を行います。
(※価格的な問題です)
 
その他は、思いのままで大丈夫かと思います ^^;
 
 
 

EC-CUBEから接続(のための準備)

 
それでは、EC-CUBEから接続・・・と言いたいところですが、事前準備を行っておきます。
 
Azure のコンソールにて、作成した MySQL サーバーを選択します。
 
メニューが表示されたら、「接続のセキュリティ」をクリックします。
 
 
 
 
SSL規則とファイヤーウォール規則の設定が表示されますので、ひとまず「SSL接続を矯正する」を「無効」にします。
 
次に、自分のIPからの接続を許可するように、「自分のIPを追加」をクリックします。
ファイヤーウォール規則の部分へ自動で設定が挿入されますので、画面上部の「保存」ボタンをクリックします。
 
※ローカル開発環境からの接続を想定しておりますが、EC-CUBEが別の場所にある場合は、その場所のグローバルIPアドレスを設定します。
 
 
 
 
ここまで設定ができたら、MySQL用のクライアントソフトを利用して、作成した MySQL サーバーに接続が行えるようになっているかと思います。
 
接続を行って、ついでに新規でDBを作成しておきます。
 
ちなみに、接続情報は先程のメニューの「接続文字列」の情報を確認するか、「概要」部分に記載されている、サーバー名(ホスト名)・サーバー管理者ログイン名(ユーザー名)・指定したパスワードになります。
 
 
 

EC-CUBEから接続

 
設定ができましたので、今度こそ EC-CUBE から接続を行います。
 
といっても、普通にEC-CUBEをインストールするだけです。
 
接続情報は先程クライアントソフトで利用したものと同じです。
(データーベースも先程作成したものを指定すればOKです)
 
※インストールには結構な時間がかかりますので気長に待ちましょう!!
(クライアントソフトで接続して、マイグレーションテーブルがどこまで進んでいるか更新ボタンを連打しながら待ちました(笑))
 
 
実際、EC-CUBE側の画面は真っ白になると思いますので、マイグレーションがどこまで進んでいるかでみるのが良い気がします。
具体的には、「doctrine_migration_versions」テーブルの中身を確認します。
 
バージョン 3.0.15 ですと、20170225120000 のデータが登録されたらOKとなります。
 
ちなみに私の環境では、「dtb_base_info」が空のまま&config.yml にインストール完了が更新されない状態になってしまったので、それぞれ下記の方法にて対応しました ^^;
 
dtb_base_info は手動でレコード追加
config.yml  はいったん設定ファイルを削除して、データーベースを初期化しないチェックを入れて再度インストール
 
 
完了後、トップページにアクセスして表示できれば接続OKです!
 
 
 
 
はい。接続できました。と、言いたいところですが本番はここからです(笑)
 
現在、MySQL サーバーに接続する際に、SSLの規則でSSLでの接続強制を無効化しておりますが、セキュリティ的には有効(強制)のが良いですよね。ということでSSLで接続をおこないたいと思います。
 
ということで、Azureのコンソールにて、SSL強制を無効にした部分を「有効」に戻しておきます。
 
 
 

EC-CUBEから接続(SSL強制で接続)

 
SSLで接続を行うには、こちらのページを参考に、証明書を用意します。
 
指示通り実行して、pem ファイルが用意できたら、そのファイルをEC-CUBEに配置します。
 
特にここに配置するというのは無いのですが、config.yml と同じ場所、 app/config/eccube/ に配置しました。
 
次に database.yml の変更を行います
( app/config/eccube/ にあります)
 
 
どう変更するかというと、、・・・どう変更するのだろう・・・^^;
 
 
 ということで、調べてみるとオプション値としてpem ファイルを追加してやると良いということでした。
 
defaultTableOptions に設定を追加します。
 
  
    driverOptions:
1012 : ‘/var/www/app/config/eccube/MyServerCACert.pem'
※pem ファイルへのパスは読み替えて下さい。
 
 
設定を変更したので、ページを表示。

 

An exception occured in driver: SQLSTATE[HY000] [2001] SSL connection is required. Please specify SSL options and retry.

 
エラーが出ました。。
 
何かが違うようです。
 
再度調べてみると、PHPバージョンによって違うとかなんとか、、
 
私の環境(PHP7.0) では、こっちが正解
 
    driverOptions:
1009 : ‘/var/www/app/config/eccube/MyServerCACert.pem'
 
 
というのも、この 1009 は定数(PDO::MYSQL_ATTR_SSL_CA)から持ってくるのが正しいようです。
 
では、TOPページを表示。
 
 
 

PDO::__construct(): Peer certificate CN=

 
はい。エラーが出ました ^^;
 
 
さらに調べてみると、sqlmode の指定によって動作が違うから・・と本家に書いてあるようで、、
 
現在、サービスへの mysql.exe 接続で "--ssl-mode=VERIFY_IDENTITY" オプションを使用した場合に、接続が次のエラーで失敗するという既知の問題が確認されています。ERROR 2026 (HY000): SSL connection error: SSL certificate validation failure Downgrade to "--ssl-mode=VERIFY_CA" or lesser SSL modes (エラー 2026 (HY000): SSL 接続エラー: SSL 証明書の検証エラー "--ssl-mode=VERIFY_CA" または以前の SSL モードにダウングレードしてください)。 "--ssl-mode=VERIFY_IDENTITY" を使用する必要がある場合は、この問題が解決するまで、リージョン サーバー名を使用してください。 サーバー名 (westeurope1-a.control.database.windows.net など) を ping してリージョン サーバーを確認し、確認したリージョン サーバー名を接続で使用してください。 この制限は、今後削除する予定です。
 
 
ということで、その支持に従って、
 
ping xxx..mysql.database.azure.com
 
を実行して、でてきたリージョンサーバーのドメインを、database.yml の host に設定します。
 
ようやくSSL強制にて接続できました。
 
 
 
 
 
 

まとめ

 
始めは簡単だと思っていたのですが、ひっかかりまくってしまいました ^^;
 
(そんなこともあって、記事のターゲットが謎な状態に・・・)
 
 
今回は、database.yml に設定を記述しましたが、database.php を作成してそれを読み込むようにした方が良さそうです。
(EC-CUBE3 は php ファイルがあるとそちらを先に読み込んでくれるので)
 
 
<php

$database = array(
'driver' => 'pdo_mysql',
'host' => 'pingで確認したホスト名',
'dbname' => 'データーベース名',
'port' => '',
'user' => 'ユーザー名',
'password' => 'パスワード',
'charset' => 'utf8',
'defaultTableOptions' => array('collate' => 'utf8_general_ci'),
'driverOptions' => array(PDO::MYSQL_ATTR_SSL_CA => 'pemファイル')
);

return array('database' => $database);
 
こんな感じ、database.php を作成して同じ場所へ配置してやれば行けるんじゃないかと思います。
(疲れたので、未確認です ^^;
 
 
 
以上、AzureのMySQLへEC-CUBEから接続でした
 

2017年3月16日木曜日

Nexus5Xのセキュリティアップデート(2017年3月)

SYSTEM_KDです。

いつもの、Nexus5X のセキュリティアップデートです。




更新サイズは、63.3MB となっております。


しっかりと、セキュリティーアップデートされていることを感じるサイズになってますね(前向き


アップデート後は、

Androidバージョン 7.1.1

セキュリティパッチレベルは 2017年3月5日

ビルド番号は、N4F26T となりました。



以上、Nexus5Xのセキュリティアップデート(2017年3月)でした。

2017年3月12日日曜日

Google Cloud Platform の無料トライアルが12ヶ月に拡大されたので使ってみる

SYSTEM_KDです。

Google Cloud Next ‘17 内で発表があったかどうかは不明なのですが、今まで$300のクレジットを60日以内で利用可能だったGoogle Cloud Platformの無料トライアルが、12ヶ月で$300のクレジットと期間が拡張されました。

gcp_ad

 

個人的には、何がどうってこともないのですが、ここ1週間ぐらいふと思い立って、Google Cloud Platform についてググっており、無料トライアルでCompute Engine 使ってみようかなーと思っていたので、凄いタイミングでの無料トライアル拡大です(笑

(むしろ、一歩間違え(?)てたら2ヶ月のタイミングで申し込むところだった・・・)

 

Google App Engine は 出始めの頃にちょっとだけ使ってみたことがあったのですが、それ以来さっぱりで、Google Cloud Next ‘17 がちょうど開催タイミングだったということすら知りませんでした。

なんという偶然・・・むしろ運命的なレベル(笑

 

無料トライアルに申し込み

ということで、無料トライアルに申し込んでみます。

まずは、「国」を選択して、「無料トライアルの利用規約」に同意。

トライアル

続いて、個人情報とクレジットカード情報を登録するはずなのですが、、

Android アプリ公開用に、Developer登録したり・有料アプリ販売を試したりしてるからか、お客様情報からクレジットカードまでお膳立てされて既に設定済みになっておりました ^^;

(カード登録か・・・と思って今まで躊躇していたのは何だったんだ・・)

 

ということで、マウス操作だけで登録が完了してしまった。。

 

完了したら、「期間が経過しても・300ドルのクレジット使いきっても勝手に課金することは無いから安心してね」という、安心できる一言を頂けました。

image

ということで、本日から1年間 or 300ドル のクレジットを使い切るまで GCPで遊ぶことができるようになりました。

 

ちなみに、期間とクレジットの残りは画面上部に表示されていました。

(金額は円で表示されるようです)

image

 

ということで、ぽちぽち触ってみてから、またブログ投稿したいと思います。

2017年3月5日日曜日

EC-CUBE3.1a が公開されました。

SYSTEM_KDです。

EC-CUBE3の次期アップデートバージョン、EC-CUBE3.1 の評価版である、3.1a が公開されました。

https://www.ec-cube.net/press/detail.php?press_id=227

EC-CUBE3は、現在3.0.x としてバグフィックス等のマイナーバージョンアップが進んでおり、現在バージョン「3.0.13」が最新となっておりますが、3.1a は今後予定されている大型バージョンアップの評価版(第一弾)となっているようです。

EC-CUBE3.1 について


主な変更点としましては、以下が行われるようです。
(GitHub の EC-CUBE3.1.0 リリース計画より抜粋)

コアの機構見直し
・機能カスタマイズ性の向上に向けた機構改善
・フロントのデザインテンプレートでのフォームヘルパーの利用の見直し・分解
・Eccube-Upgrade-Fixerの開発
・プラグインの依存関係を解決する機構を実装
・EC-CUBEスタイルガイドラインの作成
・データベースのデータ型とカラム名の変更(for 3.1)

機能改善
・受注・配送データの改善
・デバイス毎にデザインテンプレートやレイアウトを設定する機能

その他
・初期インストール時のデータ投入をCSVファイルに変更


いやーガッツリと変わりますね。
(今、公開済みのプラグインを対応させるのに結構かかりそうだな・・)


ということで、ソースコードも合わせて確認してみましたが、たしかに色々と変わってますねー

まぁ、利用するフレームワークのバージョン自体が上がってますし、コアの機構に見直しが入ってこともありで、そりゃそうですが ^^;

まだ、3.1a なので作り込みとしては、これからだと思いますが、カスタマイズ性向上部分についても、こんな感じになるというイメージを確認することができますので、ソースを落としてきて見てみるのも良いかと思います。
(って、どの対象向けの発言なんだこれw)


なお、デザイン部分の改善については、今回の3.1a には含まれていないので、今後公開されていくようです。
(そっちはそっちでどの位変更が入るのか気になるところです)


ちなみに、今後のマイルストーンとしては、EC-CUBE 3.1.0a2 が2017年5月公開となっているようです。

その中に「機能カスタマイズ性の向上に関する機構改善のフィードバック反映」が含まれているのですが、そのフィードバックできる会が、下記で開催されるようです。

2017年3月15日(水) 株式会社ロックオン本社

2017年3月16日(木) 株式会社ロックオン東京支社


ちょっと気になるし、行ってみようかなー。


以上、EC-CUBE3.1a が公開されました でした。