私は現在、AWSでsyslogサーバをスクリプト化して配備するためにAnsible 2.2を使用しています。 1つの前提条件として、S3に出荷するまで1か月間ログを保持する永続的なEBSボリュームを用意することです。したがって、もし我々がsyslogを分解してAnecess経由で再配布する必要があれば、新しく配備されたサーバにそれを再接続するだけで、以前のログが残っています。その部分は問題ありません。私はそれを処理しました。前のタスクが失敗した場合にのみ、2つのタスクを実行してください。
私の問題は、EBSボリュームがX、Y、またはZの理由で存在しない場合、新しいEBSボリュームを作成し(取得して)、添付して、 (取得)、パーティションを作成(取得)、フォーマット(取得)、マウント(取得)します。うまくいけば、次のコードはそれを理解するのに役立ちます:コードは完璧に機能していることを
- name: Create log partition
shell: /bin/echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/xvdb
- name: Format log partition
filesystem:
fstype: ext4
dev: "/dev/xvdb1"
- name: Mount log drive
mount:
name: /log
src: "/dev/xvdb1"
fstype: ext4
state: mounted
が、私はこれを実行すると、既存のEBSボリュームを再接続しながら、私はまだ私の過去のデータを削除、ボリュームを再分割し、フォーマットすることを実現し、スクラッチから始まり、それは非常に良くないです。
私が達成しようとしていることは、データを消去していないことを確認するために、パーティションやフォーマットを行う前にチェックすることです。ドライブのマウントを試みることが最善の方法だと思って、成功すればパーティションとフォーマットをスキップしてください。しかし、ドライブがマウントに失敗した場合は、パーティション分割、フォーマット、およびマウントを行います。
私はかなり新しくAnagersだから、私はどんなアイデアにも開いていて、どんな助けもありがたいです。ありがとう!
、それを再作成して拭くんデータ?あるいは、それは本質的に「ああ、それはすでにext4です、これをスキップしましょう」と言っていますか? – Chiggins
後者です。もしext4があれば、Ansibleは何もしません。ただ「ok」と言うだけです。 –