【发布时间】:2017-04-06 01:31:57
【问题描述】:
我目前正在使用 Ansible 2.2 编写脚本并在 AWS 中部署系统日志服务器。我们拥有的一个先决条件是拥有一个持久的 EBS 卷,该卷将保存一个月的日志,直到我们将它们发送到 S3。因此,如果我们需要拆除 syslog 并通过 Ansible 重新部署它,我们只需将其重新附加到新部署的服务器上,它仍然会保留以前的日志。那部分很好,我已经处理好了。
我的问题是我试图使整个任务完全自动化,如果 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 卷时,我仍会重新分区和格式化该卷,删除我的历史数据并从头开始,这非常不好。
我希望完成的是在分区和格式化之前进行某种检查,以确保我们不会清除数据。我认为最好的方法是尝试安装驱动器,如果成功则跳过分区和格式化。但如果驱动器挂载失败,则进行分区、格式化和挂载。
我对 Ansible 还很陌生,所以我愿意接受任何想法,我们将不胜感激。谢谢!
【问题讨论】:
标签: amazon-web-services ansible