我需要使用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
此任务失败:
失败! => {"更改":false,"错误":" mke2fs 1.42.12 (2014年8月29日)\ nmkfs.ext4:无效的块' / dev / sdb'在设备上 ' / dev / disk / by-id / google-my-instance-data-disk' \ n","":true, " msg":"在设备上创建文件系统ext4' / dev / sdb'失败"," rc": 1}
我做错了什么?文件系统的选项与GCE doc https://cloud.google.com/compute/docs/disks/add-persistent-disk
中建议的选项相同如果我手动执行此命令,则文件系统的创建成功!
mkfs.ext4 -F -E lazy_itable_init = 0,lazy_journal_init = 0,discard / dev / disk / by-id / google-my-instance-data-disk
解决方法是使用命令模块运行mkfs.ext4而不是使用文件系统模块,但我想了解我使用模块时出了什么问题。
非常感谢任何帮助
答案 0 :(得分:0)
感谢Konstatin Suvorov在opts中发现我的错误:参数:
使用dev:parameter/ dev / disk / by-id / {{google_disk_name}}是多余的
所以固定的任务是:
#============================================================
- name : Format disk {{ 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 }}"
# TODO : to be discussed, useful for tests
force: yes
become: true
tags:
- add_disk
- format_disk