ディレクトリ(例えば、C:\Updates)に次のファイルをコピーします。
- updates.bat
- currentServerState.txt
ColdFusion(2021 リリース)には、様々なパッケージのインストール/アンインストールを管理するパッケージマネージャーがあります。
この文書では、パッケージのインストール/アップデートのプロセスを自動化し、ColdFusion の複数のインスタンスに適用する手順について説明します。
必要なパッケージを ColdFusion インストールの 1 つのインスタンスにインストールします。
例えば、axis、awsdynamodb、awss3 の各パッケージをインストールします。
administrator と adminapi は事前にインストールされています。
これにより、サーバーの状態をファイルにエクスポートできます。このファイルを使用して、他のすべての ColdFusion インスタンスでこれらのパッケージをインストールまたは更新します。
ColdFusionでサーバーの状態をエクスポートするには、次の 2 つの方法があります。
必要なファイルがダウンロードされます。
次に、フロー全体を自動化します。その前に、前の手順で作成したファイルの使い方を確認しておきます。
import コマンドは、CFPM ユーティリティでのみサポートされます。
このコマンドは、必要なパッケージをすべてインストールします。利用可能であれば、サーバーのアップデートも適用します。
サーバーの状態をインポートとエクスポートの方法を説明しました。次に、この処理全体を自動化する方法を説明します。
サンプルのスクリプトファイル(Windows と Windows 以外)を使用できます。このファイルは、次の場所からダウンロードできます。独自のスクリプトファイルを作成して、この処理を自動化することもできます。
ダウンロード
次のことを前提とします。
また、cfusion に必要なパッケージをすべてインストールし、サーバーの状態をエクスポートしています。
残りのインスタンスにサーバーの状態を適用するには、次の手順に従います。
ディレクトリ(例えば、C:\Updates)に次のファイルをコピーします。
コマンドプロンプトを開きます。プロンプトで次のコマンドを実行します。
updates.bat C:\ColdFusion2021 C:\Updates\currentServerState.txt instance1 instance2 instance 3 instance 4
このコマンドを実行すると、axis、awsdynamodb、awss3 パッケージと一緒に administrator と adminapi パッケージが 4 つのすべてのインスタンスに自動的にインストールされます。
次のことを前提とします。
また、cfusion に必要なパッケージをすべてインストールし、サーバーの状態をエクスポートしています。
残りのインスタンスにサーバーの状態を適用するには、次の手順に従います。
ターミナルを起動し、<CF パスのホーム>/cfusion/bin ディレクトリに移動します。
updates.sh を <CF ホームのパス>/cfusion/bin ディレクトリにコピーします。
開いているターミナル ウィンドウで、次のコマンドを実行します。
。/updates.sh /opt/ColdFusion2021 <パス>/currentServerState.txt instance1 instance2 instance3 instance4
このコマンドを実行すると、axis、awsdynamodb、awss3 パッケージと一緒に administrator と adminapi パッケージが 4 つのすべてのインスタンスに自動的にインストールされます。
このフローの自動化で問題が発生した場合は、次の連絡先までお問い合わせください。
@echo off setlocal enabledelayedexpansion :: USAGE :: update.bat C:\ColdFusion C:\cfpackages.txt instance1 instance2 ...... :: First argument is the ColdFusion home directory :: Second argument is the file which was exported from a server :: From there on are all the instances of CF where you want to apply the updates to set argCount=0 for %%x in (%*) do ( set /A argCount+=1 set argVec[!argCount!]=%%~x ) set pathToExportedFile="!argVec[2]!" set pathToCFHome=!argVec[1]! for /L %%i in (3,1,%argCount%) do ( echo Executing "%pathToCFHome%\!argVec[%%i]!\bin\cfpm.bat" import %pathToExportedFile% call "%pathToCFHome%\!argVec[%%i]!\bin\cfpm.bat" import %pathToExportedFile% ) pause
#!/bin/bash ARGUMENTS=() declare count=1 declare pathToExportedFile='' declare pathToCFHome='' for var in "$@" do if [ $count == 1 ] then pathToCFHome=("$var") elif [ $count == 2 ] then pathToExportedFile=("$var") else ARGUMENTS+=("$var") fi count=$((count+1)) done for i in "${ARGUMENTS[@]}" do SCRIPT_PATH="${pathToCFHome}/${i}/bin/cfpm.sh" echo "Executing: ${SCRIPT_PATH} import ${pathToExportedFile}" . "${SCRIPT_PATH}" "import" "${pathToExportedFile}" done