OpenShiftの使用(展開例)

エントリー


まず、申し訳ありませんが、 ここ少し湿っていますが 、機能していますが、今では飛んでいますが、電話がなければ可能性は限られています。 基本的に、開発オプションは、メインディレクトリが$ OPENSHIFT_REPO_DIR(〜/ app-root / repo)であり、ローカルリポジトリにコピーがあり、編集する場合、OpenShiftがサンドボックスである場合に説明されました。
ただし、「操作用」のインストールオプションがあります。 上記の記事の最後に記載されていますが、詳細はありません。 この場合、$ OPENSHIFT_DATA_DIR(〜/ app-root / data)を使用します。 違いは、ローカルリポジトリに構成スクリプト(action_hooks、以下を参照)とデータファイル、パッチなどが含まれていることです。 しかし、アプリケーション全体ではありません。


ミニガイドは、OpenShiftを使用するためのいくつかのトリックを示しています。 github.comでの作業では、gitは詳細を理解していません。読者はすでにアイデアを持っていると想定されています。


  1. OpenShiftワークの作成とクローン作成。
  2. 有効なインストールキットを取得するための展開スクリプトの編集。
  3. github.comでリポジトリを記録します(保存用)。
  4. OpenShiftでのアプリケーションのデプロイ。

実際の例に基づいた段階的なガイド。


始める前に


PaaSホスティング(同じRedhat Openshift )へのインストールには、その仕様への準拠が必要です。


登録: こちら
クライアントのインストール: ここ(登録済み)、ドキュメントもありますが、すべて英語です
OSがほぼ同じ場所で動作することを心配しないでください。 はい、あなたのアプリケーションは、とにかくRHEL 6.7の下で。
ドメインの作成を提案します(これは第3レベルのサブドメインです。アプリケーションのアドレスはhttp://myapp-mydom.rhcloud.comになります)。


Openshiftは、サブディレクトリの標準セットを持つユーザーディレクトリをグローバルに提供します: こちら 。 エンジンの特性は、インストールされたソフトウェアのホームディレクトリで、configがルートに属していることです。 あなたの名前は非常に長いハッシュタイプの数字です(非常にdockerが思い出します)。


必要なすべてのデータは、OPENSHIFT_、 referenceという形式の環境変数に保存されます。


降りる


すでにやった



注:


SalesPlatform-6.4.0アプリケーション、自己インストール型LAMP。
CentOS 7.2システム(ただし、詳細は異なります)。
私のサンプルアプリケーションは、あなた次第です。 (名前にはラテン文字と数字のみを使用できます)。
github.comの私のリポジトリはhttps://github.com/zirf0/exampleで 、その場合はスパイします。

  1. スタブを作成し、ホームディレクトリに複製します。
    $rhc app create example php-5.3 mysql-5.5
    $cd example


  2. Openshift Serviceカタログ
    $ tree .openshift /
    .openshift /
    ├──action_hooks
    │└──README.md
    ├──cron
    │...
    ├──マーカー
    │└──README.md
    ├──pear.txt
    └──README.md



厳密に言えば、 action_hooksに興味があります。 これはさまざまな目的のスクリプトのセットですが、この例ではbuildおよびdeployのみを使用します。一般に、スクリプト名は実行されるアクションに対応します。 簡単な問題を解決します。


  1. PaaSホスティングのソースをデフレートします。


  2. それらを〜/ app-root / data / currentに展開します


  3. 変更を行います(原則として、DBMSアクセス変数を組み込みのOpenShiftに置き換えることが必須です)。


  4. アプリケーションを展開します。


  5. 始めましょう



$ vi .openshift/action_hooks/build


そしてそこに置く


build-初期インストールスクリプト

#!/bin/bash
# ~/app-root/data current
#
current_version_dir=${OPENSHIFT_DATA_DIR}current
# , .
[ -d "${current_version_dir}" ] && exit 0
#
install_version='6.4.0-201512'
# .
install_dir=${OPENSHIFT_BUILD_DEPENDENCIES_DIR}${install_version}
mkdir -p $install_dir
#
pushd ${install_dir} >/dev/null
# ( ).
curl -Ls downloads.sourceforge.net/project/salesplatform/salesplatform-vtigercrm-${install_version}.tar.gz > salesplatform-vtigercrm-${install_version}.tar.gz
#
tar --strip-components=1 -xzf salesplatform-vtigercrm-${install_version}.tar.gz
# , .
rm -rf salesplatform-vtigercrm-${install_version}.tar.gz
#
echo $install_version > ${OPENSHIFT_BUILD_DEPENDENCIES_DIR}.current_version
# .
popd >/dev/null


$ vi .openshift/action_hooks/deploy


スクリプトにパッチが適用され(MySQL DBMSに接続するための環境変数の同じ置換)、インストール.htaccessが追加されます。 あなたはあなた自身のものを持つことができます、例えば、 完成したものを取ります


deploy-展開スクリプト

#!/bin/bash
# This deploy hook gets executed after dependencies are resolved and the
# build hook has been run but before the application has been started back
# up again. This script gets executed directly, so it could be python, php,
# ruby, etc.
dest_dir=${OPENSHIFT_DATA_DIR}current
current_version=$(cat ${OPENSHIFT_BUILD_DEPENDENCIES_DIR}.current_version)
install_dir=${OPENSHIFT_BUILD_DEPENDENCIES_DIR}${current_version}
if [ ! -d "${dest_dir}" ]; then
mkdir -p $dest_dir
cp -rf ${install_dir}/* ${dest_dir}/
fi
# ~/app-root/repo/php ( php) .
if [ -d ${OPENSHIFT_REPO_DIR}php ]; then
rm -rf ${OPENSHIFT_REPO_DIR}php
fi
ln -sf ${dest_dir} ${OPENSHIFT_REPO_DIR}php
# .htaccess .openshift/config
if [ -f ${OPENSHIFT_REPO_DIR}.openshift/config/.htaccess ]; then
cp -f ${OPENSHIFT_REPO_DIR}.openshift/config/.htaccess ${dest_dir}/.htaccess
fi
set -e
# .
patch ${dest_dir}/modules/Install/views/Index.php ${OPENSHIFT_REPO_DIR}.openshift/config/patches/db_conf.patch


どうぞ github.comでリポジトリを作成します。
カタログで:
$git rm index.php
$vi README.md
当然、ファイルに記入する必要があります。ドーナツホールが最も目に見える場所にあるリポジトリほど悪いものはありません。
git add .
git commit -m "Initialize"
github.comをリモートリポジトリに追加します(当然、URLは次のようになります)。
$git remote add upstream ssh://git@github.com/zirf0/example.git
すでにsshキー〜/ .ssh / id_rsa.pubがあります。 github.comの指示に従って追加してください


github.comで作業を完了します
$git push upstream master


PaaS Openshiftにアプリケーションをデプロイします。
$git push
これは$ git push origin masterと同等です。


そのようなものを取得する必要があります

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 339 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Stopping PHP 5.3 cartridge (Apache+mod_php)
remote: Stopping MySQL 5.5 cartridge
remote: Building git ref 'master', commit 38fe1a5
remote: Checking .openshift/pear.txt for PEAR dependency...
remote: Preparing build for deployment
remote: Deployment id is b4269d37
remote: Activating deployment
remote: Starting MySQL 5.5 cartridge
remote: patching file /var/lib/openshift/56c4641789f5cfbebb000031/app-root/data/current/modules/Install/views/Index.php
remote: Hunk #1 succeeded at 98 with fuzz 1.
remote: Starting PHP 5.3 cartridge (Apache+mod_php)
remote: Application directory "php/" selected as DocumentRoot
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success
To ssh://56c4641789f5cfbebb000031@example-helidon.rhcloud.com/~/git/example.git/
f5b094a..38fe1a5 master -> master


Webを介してすべてがインストールを開始する必要があります。


希望、提案?



Source: https://habr.com/ru/post/J277445/


All Articles