2016-04-18 14 views
1

超えるマルチライン、私はマルチラインとAnsibleの脚本についての質問があります:私は非常に大規模なラインで脚本を作成しているAnsible:脚本

を、私はより良い読書のために、このラインをカットする必要があります。私はそれをどのようにすることができますか?

- name: 'Create VM Azure :-P ' 
    shell: if ! grep {{ item }} /tmp/vm_{{ rgName }}; then azure vm create --vm-size {{ groups['item'][vmsize] }} --resource-group {{ rgName }} --name {{ item }} --location {{ location }} --admin-username {{ username }} --ssh-publickey-file {{ sshfile }} --storage-account-name {{ rgName | lower }} --os-type {{ groups['item'][type_os] }} --image-urn {{ image }} --data-disk-size {{ disksize }} --subnet-id {{ subnetid_key }} --nic-names {{ item }}; fi 
    with_items: groups['test'] 

方法を次のように私はそれをしたいと思いますが、

 - name: 'Create VM Azure :-P ' 
     shell: if ! grep {{ item }} /tmp/vm_{{ rgName }}; then 
       azure vm create --vm-size {{ groups['item'][vmsize] }} 
       --resource-group {{ rgName }} --name {{ item }} 
       --location {{ location }} --admin-username {{ username }} 
       --ssh-publickey-file {{ sshfile }} --storage-account-name {{ rgName | lower }} 
       --os-type {{ groups['item'][type_os] }} --image-urn {{ image }} 
       --data-disk-size {{ disksize }} --subnet-id {{ subnetid_key }} 
       --nic-names {{ item }}; fi 
     with_items: groups['test'] 

エラー脚本を実行したとき、私はいくつかのエラーを持っている:

ERRORを!構文YAMLのロード中にエラーが発生しました。

エラーは、 '/home/pvillarruel/docker/azure-ansible/data/playbook.yml':行79、列1にありますが、正確な構文の問題によってはファイル内の別の場所にある可能性があります。ここ

shell: if ! grep {{ item }} /tmp/vm_{{ rgName }}; then azure vm create --vm-size 
    {{ groups['item'][vmsize] }} --resource-group {{ rgName }} --name {{ item }} 

^ 我々は間違っているかもしれないが、それは 欠落している引用符で問題になる可能性がありますように、この1はなります

問題のある行があるように思われます。 が値を開始するときは、常にテンプレート式の括弧を引用符で囲みます。例えば:

with_items: 
    - {{ foo }} 

は次のように記述する必要があります。

shell: > 
    if ! grep {{ item }} /tmp/vm_{{ rgName }}; then 
    azure vm create --vm-size {{ groups['item'][vmsize] }} 
    --resource-group {{ rgName }} --name {{ item }} 
    --location {{ location }} --admin-username {{ username }} 
    --ssh-publickey-file {{ sshfile }} 
    --storage-account-name {{ rgName | lower }} 
    --os-type {{ groups['item'][type_os] }} --image-urn {{ image }} 
    --data-disk-size {{ disksize }} --subnet-id {{ subnetid_key }} 
    --nic-names {{ item }}; fi 

with_items: 
    - "{{ foo }}" 

おかげ

答えて

5

、彼らはこの種のもののために正確に設計されたYAMLブロックスカラーを使用>は、次のブロックがスカラーであり、行が折り返されていることを示します。つまり、newli neの文字は1つのスペースに変換されます。また、特殊文字について心配する必要はなく、すべてが文字通り折畳まれたブロックスカラーで取られます。

+0

ありがとうございます! – Pablolibo

関連する問題