1.公開鍵と秘密鍵サーバは、クライアントとの信頼関係を確立します。ストレージに元のファイルサーバとして、ansibleホスト。
1.1。ansibleホスト上のパブリックを作成します。
1024 keygenの-t -b SSH RSA
[ルート@サーバー〜]#のSSH-keygenは-b 1024 -t rsaの
生成公開鍵/秘密鍵のペアRSA。#プロンプトに生成されたRSA鍵ペア
の鍵を保存するファイルを入力します ( /home/usrname/.ssh/id_dsa):#保存された公開鍵と秘密鍵を求めて、デフォルトの場所を入力し
ていないパスフレーズのための空のパスフレーズを()を入力します。# お問い合わせは、秘密鍵のパスフレーズを入力し、パスフレーズを入力します(ここでは入力の$ Qtは2Hblで)
もう一度、同じパスフレーズを入力します。#は、再びパスフレーズの確認を求め
あなたの識別が/home/usrname/.ssh/id_dsa#プロンプト公開鍵と秘密鍵で保存されているが/root/.ssh/に格納されています。ディレクトリ
。あなたの公共/home/usrname/.ssh/id_dsa.pubキーが保存されている
主な指紋のは、IS:
X6:68:XX:98:93 87:95:8倍7倍:2倍:4倍:X9: 81:XX:56である:94
-b長さバイト1024×1024が公開鍵/秘密鍵のペアを使用しての
公開/秘密鍵のペアを使用して-t RSA、RSA暗号化
一部の人々は、フレーズは、ユーザー名とパスワードを使用するよりもはるかに簡単ではありませんログインするためのパスワードをログインパスワードフレーズを使用するだけでなく、使用することを言います。それは真実ではありません。
1.2リモートホストに公開鍵を送信し、コマンドは:sshpassは-p "パスワードリモートホストのIPのsshのルート@ -o-コピー-ID NO StrictHostKeyChecking =
リモートホストへのIP接続を回避するために、どのように1.3 SSH、その後、パスフレーズを入力してください
(これは、要塞のssh接続にクラウドサーバ管理、ネットワークホストコンピュータで一般的に一般的ですが、ホストパスフレーズとは、それぞれ次のように使用して、あまりにも面倒です)
評価コマンドの実行は、自動的に環境変数を宣言しました。evalのssh-agent
SSH環境変数環境変数は、現在のセッションに参加します。
ssh-agentののキャッシュにプライベートキーを追加するためにはssh-追加します。パスフレーズの入力を求め、それを入力してください。
現在の環境では変数は、リモートホストに接続して直接sshをすることができます。ssh-agentのも辞め、現在のシェルを終了します。場合は、次の接続には、再評価をすることができます。
2.該当するスクリプトの定義
アイデア:信頼の各クライアントの関係にansibleホストを確立するための最初のステップに基づいて、実行トラッカーファイルサービス、大規模な.torrentファイルを生成し、ファイルのパッケージの配布は、播種を必要とする、クライアントのダウンロードの最終定義ファイルスクリプト。
2.1まず、2つのディレクトリを定義します。で、大きなファイルを格納するディレクトリは/ opt /データ/;カスタムスクリプトは、ディレクトリは/ opt /アプリケーション/
seeder.conf 2.2は/ opt /アプリ/殺人の内容で設定ファイルを変更します。
大容量ファイル#1
=は/ opt /データ/ update_v0.27-91-2 deploy_file
#は、対応するディレクトリansibleで、トレントファイルの格納アドレスを生成します。
= torrent_fileの/ etc / ansible /役割/更新/ファイル/ update_v0.27-91-2.torrent
#trackerサービスは、他のメンバーが依存しているトラッカー
tracker_ip = 21.0.0.153:8998
local_ipを= 21.0.0.153
2.3 /opt/app/murder/murder_tracker.sh定義、開始します。
#/bin/sh
name="murder-tracker"
murder_tracker_bin="/opt/app/murder/murder-master/dist/murder_tracker.py"
murder_tracker_log="/opt/log/murder/murder_tracker.log"
murder_tracker_data="/opt/data/murder/tracker_data"
find_tracker_process(){
PID=`ps -ef |grep murder_tracker|grep python |grep -v $0|grep -v grep |grep -v sh|awk '{print $2}'`
}
start(){
LOG_DIR=`dirname $murder_tracker_log`
DATA_DIR=`dirname $murder_tracker_data`
if [ ! -d $LOG_DIR ];then
#echo -e "\e[35mlog dir $LOG_DIR doesn't exist,creating\e[0m"
printf "log dir $LOG_DIR doesn't exist,creating...\n"
mkdir -p $LOG_DIR
fi
if [ ! -d $DATA_DIR ];then
printf "data dir $DATA_DIR doesn't exist,creating...\n"
mkdir -p $DATA_DIR
fi
find_tracker_process
echo $PID
if [ "$PID" != "" ]; then
printf "$name is already running...\n"
else
python $murder_tracker_bin > /dev/null 2>&1 &
printf "starting $name done....\n"
fi
}
stop(){
if [ `netstat -lnpt |grep 8998 |wc -l` -eq 1 ];then
find_tracker_process
kill $PID
printf "stoping $name done...\n"
else
printf "$name is already stopping...\n"
fi
}
restart(){
stop
sleep 2
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
printf "Usage: $0 {start|stop|restart}\n"
esac
exit
2.4 /opt/app/murder/murder_seeder.sh定義、開始します。
#!/bin/sh
name="murder-seeder"
muder_seeder_data="/opt/data/murder"
muder_seeder_log="/opt/log/murder/muder_seeder.log"
murder_make_torrent_bin="/opt/app/murder/murder-master/dist/murder_make_torrent.py"
murder_seeder_bin="/opt/app/murder/murder-master/dist/murder_client.py"
seeder_conf_path="/opt/app/murder/seeder.conf"
deploy_file=$(awk -F= '/deploy_file/{print $2}' $seeder_conf_path)
torrent_file=$(awk -F= '/torrent_file/{print $2}' $seeder_conf_path)
tracker_ip=$(awk -F= '/tracker_ip/{print $2}' $seeder_conf_path)
local_ip=$(awk -F= '/local_ip/{print $2}' $seeder_conf_path)
#echo $murder_make_torrent_bin $deploy_file $tracker_ip $torrent_file
find_seed_process(){
PID=`ps -ef |grep murder_client|grep seed |grep -v $0|grep -v grep |grep -v sh|awk '{print $2}'`
}
start(){
#make torrent
python $murder_make_torrent_bin $deploy_file $tracker_ip $torrent_file
#echo $?
if [ $? != 0 ];then
python $muder_make_torrent_bin $deploy_file $tracker_ip $torrent_file
fi
find_seed_process
#echo $PID
if [ "$PID" != "" ]; then
printf "$name is already running...\n"
else
python $murder_seeder_bin seed $torrent_file $deploy_file $local_ip >/dev/null 2>&1 &
printf "starting $name done....\n"
fi
}
stop(){
find_seed_process
if [ $PID != "" ];then
kill $PID
printf "stoping $name done...\n"
else
printf "$name is already stopping...\n"
fi
}
restart(){
stop
sleep 2
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
printf "Usage: $0 {start|stop|restart}\n"
esac
exit
2.5