OpenShift:いくつかのギア内部

少し高い



Gearは、アプリケーションの実際のランタイムであるOpenshiftの「エンジン」です。 無料で登録するとすぐに3つが与えられます。 実際には、デバイスについて何も知ることができません。 しかし、それは有害です。



1.特定のディレクトリ構造があります。 〜/ App-rootはアプリケーション用に予約されています。



タイプls



ビルド依存関係->ランタイム/ビルド依存関係
データ
依存関係->ランタイム/依存関係
ログ
リポジトリ->ランタイム/リポジトリ
ランタイム


厳密に言えば、データとレポは興味深いものです。 面白い部分は、3つのディレクトリがランタイムサブディレクトリへのリンクであり、ランタイム/データが現在のディレクトリ内のデータへのリンクであることです。 runtime / .stateには、ギアの現在の状態(開始済み、アイドル、展開中)が含まれます。



2.すべてのアドレス、パスワード、ディレクトリなどは環境変数に含まれており、それらを使用して作業を行います。 変数の詳細については、 ここで説明します



地面に近づいた



一般に、アプリケーションをインストールするための2つの主なオプションがあります。



1.開発用。 この場合、リポジトリの内容と〜app-root / repoディレクトリの内容は同じです。 アプリケーションを自分でデプロイし、変更を加えてクラウドにプッシュし、そこで起動します。

(以下の例)。



2.主にアプリケーションの操作に携わっており、構成へのアクセスのみが必要な場合、インストールは〜/ myapp / .openshift / action_hooks /のスクリプトを使用して行われます

スクリプトは、いくつかのpre_buld、build、deploy、post_deployです。 一般に、bash、perl、python、rubyなどで記述できます。これらのスクリプトのタスクは次のとおりです。



-アプリケーションをダウンロードして解凍します。

-データベースの活性を確認します。

-設定を接続します。

-必要に応じてパッチを適用します。



スクリプトの半分は実際には何もしません。 自分で書くスクリプト。 あなたと手にカード。 最初のケースとは異なり、データは〜/ app-root / dataに置かれ、リンクが作成され、クローンを作成すると空のディレクトリが作成されます(gitはvoidを許容しないため、スタブがあります-.gitkeeperファイル-実際には機能し、コンテンツです) 。



3.実際に、ルールを正確に調整する機能。 「それが機能する」ことは非常に便利です。



しかし、実際に見てみましょう。



例えば



たとえば、LAMPを使用します。 PaaS OpenSift上のLAMP自体はすでに最高の状態です。 vTigerCRM(SalesPlatform)を選択しました。 そのようなアプリケーションの違いは何ですか? 展開後、構成スクリプトが起動され、データベース接続設定およびその他のパラメーターの入力をインタラクティブに求められます。 しかし、OpenShiftは環境変数を使用して動作することを思い出してください。つまり、アプリケーションは、必要に応じてこれらの変数の値を取得する必要があります。 さらに、必要なphpパラメーターを裏切る必要があります。 ヘッドphp.iniへのアクセスはなく、.htaccessは残ります。



そのため、LAMPを作成します(オプション1用)。



$ rhc app create spddevel php-5.3 mysql-5.5 clone  ,  $ cd spdevel
      
      





ここにはすでにリポジトリがあります。



 rm index.php git add . git commit -m "remove original index.php" $ wget http://downloads.sourceforge.net/project/salesplatform/salesplatform-vtigercrm-6.4.0-201512.tar.gz $ tar --strip-components=1 xf sales-platform-vtigercrm-6.4.0-201512.tar.gz -C ~/spdevel rm salesplatform-vtigercrm-6.4.0-201512.tar.gz
      
      





これで、リポジトリのあるフォルダには完全に展開されたディレクトリができました。 2つのことを行う必要があります。 パッチを適用して、元のキーボード入力をopenshift変数に置き換えます。



実際のパッチ:



 --- Index.php 2015-12-23 15:44:07.000000000 +0300 +++ Index.php.new 2016-01-13 09:00:18.272322263 +0300 @@ -98,11 +98,11 @@ $timeZone = new UserTimeZones(); $viewer->assign('TIMEZONES', $timeZone->userTimeZones()); - $defaultParameters = Install_Utils_Model::getDefaultPreInstallParameters(); - $viewer->assign('DB_HOSTNAME', $defaultParameters['db_hostname']); - $viewer->assign('DB_USERNAME', $defaultParameters['db_username']); - $viewer->assign('DB_PASSWORD', $defaultParameters['db_password']); - $viewer->assign('DB_NAME', $defaultParameters['db_name']); + # $defaultParameters = Install_Utils_Model::getDefaultPreInstallParameters(); + $viewer->assign('DB_HOSTNAME', $_ENV['OPENSHIFT_MYSQL_DB_HOST']); + $viewer->assign('DB_USERNAME', $_ENV['OPENSHIFT_MYSQL_DB_USERNAME']); + $viewer->assign('DB_PASSWORD', $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD']); + $viewer->assign('DB_NAME', $_ENV['OPENSHIFT_APP_NAME']); $viewer->assign('ADMIN_NAME', $defaultParameters['admin_name']); $viewer->assign('ADMIN_LASTNAME', $defaultParameters['admin_lastname']); $viewer->assign('ADMIN_PASSWORD', $defaultParameters['admin_password']);
      
      





db.patchなどの任意のファイルに保存します。 次:



 $ patch modules/Install/views/Index.php db.patch
      
      





次に、必要なphpオプションを省略します。



 vi .htaccess Options -Indexes php_value date.timezone 'Europe/Moscow' php_value error_reporting 22519 php_value max_input_vars 100000 php_value max_execution_time 600 php_flag log_errors on php_flag display_errors off php_flag allow_call_time_pass_reference on $ git status $ git add . $ git commit -m "All ready to deploy" $ git push
      
      





それだけです ウェブサイトspdevel-ourdomain.rhcloud.comを起動します。



インストールのステップ4に進みます。







データベースパラメータがすでに入力されていることがわかります。 すべて、管理者のデータを入力すると、すべてが簡単になります。



ワンステップで同じこと。 ホームディレクトリで:



 $ rhc app create spdevel php-5.3 mysql-5.5 --from-code=https://github.com/zirf0/openshift-salesplatform
      
      





また、spdevel-ourdomain.rhcloud.comも取得します。 そして、spdevel /ディレクトリ。



オプション2。ここでは賢くありませんので、原則は明確です。



 $ rhc app create sp php-5.3 mysql-5.5 --from-code=https://github.com/zirf0/openshift-salesplatform-example cd sp/ ls -al
      
      





控えめに言って、アプリケーション自体は存在せず、〜app-root / data / currentにあります(便宜上、サブディレクトリが追加されています)。



実際、このオプションの便利さは何ですか:



 .openshift /
 ├──action_hooks
 │├──ビルド
 │├──デプロイ
 │├──post_deploy
 │└──pre_build
 ├──config
 │├──db_conf.patch
 │└──.htaccess
 ...


スクリプトはプラットフォームで実行され、データはconfigに配置できます。つまり、同じデータベースで作業する場合、sqlスクリプトをconfigに配置できます。WordPress4には最も必要なものがあります。プラグインとテーマが利用できます。 実際には、上記のdb_cong.patchおよび.htaccessの内容に含まれています。



まとめ



便利なPaaS(IaaSの前)は、システム管理者の作業から開発者を解放します-構成をいじる必要はありません。 はい、産業展開では、システム管理者は必須です。 書かれた指示を読むことと、それがどのように機能するかを理解することです。 誰もが自分のことをやらせる



All Articles