他のサーバーにインストールする必要がある共通パッケージがあります。インストールは同じkickstartテンプレートファイルを介して行われます。したがって、キックスタートテンプレートは各サーバーのキックスタートを作成するために使用され、このキックスタートは別のサーバーで実行され、同じパッケージをこれらのサーバーにインストールします。このパッケージではsshキーを生成する必要があります(正しく実行し、キー生成のコメントセクションで各サーバーに異なる変数を渡したいと思います)、私が考える方法はCreateです。このテンプレートファイルに変数を追加し、その変数を仕様ファイルに渡します。だから:
起動テンプレートでは、次の操作を行います。
svr_name=<xsl:value-of select="$node"/>
packages=("svr_xxxxxxx_common"
"svr_common"
)
これはキックスタートインスタンスによって異なります。 %postステップで作成されたパッケージ内:
ssh-keygen -q -t rsa -f /home/xxx/.ssh/id_rsa -C "${svr_name}" -N ""
しかし、これはうまくいきません。インストール後、この変数は存在しないように見えます。 ssh-keygenはうまくいきますが、コメントはありません。
答え1
スクリプトレットを実行する前に、rpmは環境をクリーンアップします。
ファイルを使用できます。たとえば、起動時:
%pre
echo "svr_XXX" > /foo
%post
次にrpmのスクリプトレットから。
%post
SVR_NAME=$(cat /foo)
ssh-keygen -q -t rsa -f /home/xxx/.ssh/id_rsa -C "${SVR_NAME}" -N ""
ファイルの存在とそのファイルのより良い場所も処理する必要があります。私はあなたに任せます:)