当我在命令行上运行它时它工作正常:
echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/sdb
但是在Ansible中它不想在shell中运行:
- name: partition new disk shell: echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/sdb
它不会返回错误,但它也不会创建分区.
我检查过Ansible和LVM不会做我需要的.
任何建议?
默认情况下,Ansible执行/ bin / sh shell.
例如,如果/ bin / sh链接到dash,则它的内置echo与bash或GNU echo中的echo不同;所以你最终用-e字符输入fdisk.
例如,如果/ bin / sh链接到dash,则它的内置echo与bash或GNU echo中的echo不同;所以你最终用-e字符输入fdisk.
尝试:
- name: partition new disk shell: echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/sdb args: executable: /bin/bash
要么:
- name: partition new disk shell: /bin/echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/sdb