シェルスクリプトを使用したCentOS 7設定の自動化

シェルスクリプトを使用したCentOS 7設定の自動化

CentOS 7サーバーを手動で設定するためにチュートリアルを使用するのに多くの時間を費やしたことがわかりました。 チュートリアルの手動ステップを、同じ設定で複数のCentOS 7サーバーを構成するために使用できる自動化されたシェルスクリプトにどのように変換できますか?

使用しようこのチュートリアルたとえば、単に自動化する動作シェルスクリプトを提供するだけでなく、答えは他の設定シェルスクリプトに一般化できるはずです。このチュートリアル。

これはシェルスクリプトに対する私の最初の試みです。

#!/bin/bash
yum update
yum install yum-utils bzip2 bzip2-devel wget curl tar
sudo yum install gcc-c++
cd /opt
wget http://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
tar zxf node-v0.12.7.tar.gz
cd node-v0.12.7
./configure --prefix=/usr/local
make
make install  
npm install bower -g  
npm install gulp -g  

上記のシェルスクリプトを正しく書くには?たとえば、各ステップが正しく完了したことをどのように確認しますか?上記のコマンドを実行するには、ルートである必要があります。 sudoerで実行している場合は、定期的なパスワード要求をどのように処理しますか?それともシェルスクリプトにあるという事実は、スクリプトを初めて呼び出すときにsudoerパスワードを提供するだけです。

私はシェルスクリプトに初めて触れる人なので、他のシェルスクリプトの初心者が理解できる言語で説明してください。

また、これはyum installスタンバイなどのCentOS 7に限定されていません。

答え1

あなたの質問にはいくつかの部分があり、あなたが実行するすべてのコマンドに精通していると主張することはできませんが、以下は私の意見です。

root(直接)またはsudoを介してスクリプト全体を実行します。これにより、スクリプト自体でsudoを実行する必要がなくなります。特定の手順を実行するためにsudoが必要な場合は、sudoersがNOPASSWDフラグを使用してIDを設定するか、スクリプトの実行中にパスワードを要求するインタラクティブプロンプトを受け入れる必要があります。

各ステップの正しい実行に関する他の一般的な質問に答えるには、ステップの戻りコードを確認し、既存のプログラムが戻りコードを正しく設定することを願っています。

いくつかの例:

略語:

yum update && \
yum install yum-utils bzip2 bzip2-devel wget curl tar

長い手:

yum update
RC=$?
if [ $RC -ne 0 ]
then
  print "Some error message here"
  exit 1 ## or some other identifying error code
fi

yum install yum-utils bzip2 bzip2-devel wget curl tar
RC=$?
if [ $RC -ne 0 ]
then
  print "Some other error message here"
  exit 2 ## or some other identifying error code
fi
...

答え2

あなたが言うように、自動化されたシェルスクリプトでなければなりません。少なくとも2つのyumコマンドに対して追加する必要があり、-yyumは答えを「」と仮定できます。はい「すべての質問について尋ねます。

よりYum のマニュアルページ、関連抜粋:

   -y, --assumeyes
          Assume yes; assume that the answer to any question which would be asked is yes.
          Configuration Option: assumeyes

知っておくべき重要なヒントを含む詳細については、既存の問題を参照してください。"yum -y install"は安全ですか?

関連情報