【发布时间】:2017-10-16 14:35:46
【问题描述】:
我需要使用 Ansible 向现有 GCE 实例添加一个额外的磁盘
磁盘是使用 gce_pd 模块创建的:
- name : Add new disk
local_action:
module: gce_pd
instance_name: "{{ ansible_host }}"
project_id: "{{ project_id }}"
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
zone: "{{ my_zone }}"
size_gb: 5
mode: READ_WRITE
name: "{{ ansible_host }}-data-disk"
register: gce_pd
tags:
- add_disk
此任务成功。
然后我尝试在新磁盘上创建一个 ext4 文件系统:
#============================================================
- name : Create filesystem {{ google_disk_name }}
filesystem:
fstype: ext4
# TODO : improve this
dev: /dev/sdb
opts: "-F -E lazy_itable_init=0,lazy_journal_init=0,discard -L {{ volume_label }} /dev/disk/by-id/{{ google_disk_name }}"
force: yes
become: true
tags:
- add_disk
- format_disk
此任务失败:
失败了! => {“改变”:假,“错误”:“mke2fs 1.42.12 (2014 年 8 月 29 日)\nmkfs.ext4:设备上的无效块“/dev/sdb” '/dev/disk/by-id/google-my-instance-data-disk'\n", "failed": true, "msg": "在设备 '/dev/sdb' 上创建文件系统 ext4 失败", "rc": 1}
我做错了什么?文件系统的 opts 与 GCE doc https://cloud.google.com/compute/docs/disks/add-persistent-disk 中推荐的相同
如果我手动执行这个命令,文件系统的创建就成功了!
mkfs.ext4 -F -Elazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/google-my-instance-data-disk
一种解决方法是使用命令模块来运行 mkfs.ext4 而不是使用文件系统模块,但我想了解我在使用该模块时出了什么问题。
任何帮助将不胜感激
【问题讨论】:
-
为什么要将 device
/dev/disk/by-id/{{ google_disk_name }}输入 opts? -
哎呀!你已经发现了问题。非常感谢。
标签: linux ansible google-compute-engine