HOS 2.1 ネットワークカスタマイズ付きCephインストール(8/8)
2016-01-23
Machine-translated — the English original is authoritative.
真実、そして全容を…
ここでは、このインストール中に遭遇したエラーについて説明します。
エラー – 1
構成プロセッサを実行すると、短い暗号化キーを受け入れ、実行の最後まで警告やエラーを表示しません。

構成プロセッサを再実行し、より強力な暗号化パスワード ‘H3lionhelion!’ を使用しました。
そして、デバッグが必要な次の構成へと進みます…
エラー – 2
cd ~/helion/hos/ansible
ansible-playbook -i hosts/localhost config-processor-run.yml

network_groups.yml ファイルを見ると、このセクションを修正し忘れていることがわかります。

外部名として ‘hos2.allthingscloud.eu’ を追加しました。

エラー – 3
servers.yml ファイルで割り当てた nic_mapping プロファイルについても文句を言われています。

このプロファイルは nic_mappings ファイルに欠けていました。
正しいプロファイル HP-DL360-8PORT を nic_mappings ファイルに追加しました。

これで、これらの変更すべてをリポジトリにコミットし、最初からやり直す必要があります。
cd ~/helion/hos/ansible
git add -A
git commit -m "Fixed initial configuration errors"
エラー – 4
cd ~/scratch/ansible/next/hos/ansible
ansible-playbook -i hosts/verb_hosts wipe_disks.yml
ディスクの消去を試みると、以下のエラーが発生しました。

これは機密コンテンツを暗号化したためです。これを克服するには、コマンドラインの一部として --ask-vault-pass を指定する必要があります。
ansible-playbook -i hosts/verb_hosts wipe_disks.yml --ask-vault-pass
エラー – 5
ほぼ完了したと思ったときに、以下のような別の失敗が発生しました。

~/.ansible/ansible.log には、破損したディスクパーティションに関する多くの警告があります。以下のスクリプトを使用して、これらを「手動で」クリアしようとしました。
clear_host() {
ssh $1 << EOF
echo onhost connected
sudo /bin/dd if=/dev/zero of=/dev/sdb bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sdc bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sdd bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sde bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sdf bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sdg bs=512 count=2
sudo /bin/dd if=/dev/zero of=/dev/sdh bs=512 count=2
sync
EOF
}
export -f clear_host
seq 15 17 | while read i; do
clear_host 172.16.60.$i
done
しかし、これも効果はありませんでした。同じパーティションエラーが発生します。
次の修正試行では、各CephサーバーのRAIDコントローラにログインし、OS以外のドライブを削除して再作成します。





OSドライブである Array A を除き、すべての Array を削除します。


Array B ~ G についてもこれを繰り返すと、最終的に以下のような状態になります。

これで、すべてのRAID0ドライブアレイを再構築します。

「RAID 0でアレイを作成」オプションを選択します。

OKを選択します。



このプロセスを他の2つのCephノードでも繰り返し、その後デプロイメントを再実行します。
ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass --limit @/home/graham/site.retry
再び全く同じ失敗が発生しました…既知のバグを探す時が来ました…
はい、これは既知のバグです – wipe_disk 機能は常に正しく動作するわけではありません –
各ノードにログインし、各ジャーナルおよびOSDドライブに対して以下のコマンドを実行する必要があります。
/sbin/sgdisk --zap-all -- /dev/sd[b-h]
または、以下のスクリプトを使用します。
clear_host() {
ssh $1 << EOF
echo onhost connected
sudo /sbin/sgdisk --zap-all -- /dev/sdb
sudo /sbin/sgdisk --zap-all -- /dev/sdc
sudo /sbin/sgdisk --zap-all -- /dev/sdd
sudo /sbin/sgdisk --zap-all -- /dev/sde
sudo /sbin/sgdisk --zap-all -- /dev/sdf
sudo /sbin/sgdisk --zap-all -- /dev/sdg
sudo /sbin/sgdisk --zap-all -- /dev/sdh
sync
EOF
}
export -f clear_host
seq 15 17 | while read i; do
clear_host 172.16.60.$i
done
エラー – 6
そして、中断した場所から続行します –
ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass --limit @/home/graham/site.retry
これで次の課題に直面します –

ご覧の通り、これは認証について文句を言っています。見えない部分ですが、元の失敗したscreenセッションに再接続してから12時間以上が経過しています。--limit @/home/graham/site.retry を付加することで、失敗した箇所から継続しようとしていますが、一部の認証トークンが期限切れになったようです。
--limit @/home/graham/site.retry オプションなしでインストールを再実行します。
ansible-playbook -i hosts/verb_hosts site.yml --ask-vault-pass
Originally published on allthingscloud.eu (2016-01-23).