2015-12-22 77 views
0

我想使用blockinfile,所以我正在做一些测试。 我有下一个任务,但它给我一个sintax错误。Ansible blockinfile错误

- name: Prueba 
    blockinfile: 
    dest: /opt/a 
    block: | pruebaa 
    pruebaaa 

这是我的错误:

ERROR! Syntax Error while loading YAML. 


The error appears to have been in '/home/ikerlan/ansiblePlaybooks/hadoop-Ansible/roles/comun/tasks/main.yml': line 39, column 12, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

    dest: /opt/a 
    block: | pruebaa 
     ^here 

我完全main.yml是下一个

#NAMENODES 

#Los siguientes comandos solo se ejecutaran en los namenodes 

- name: Archivo de configuracion zoo.cfg 
    template: src=zoo.cfg.j2 dest=/opt/zookeeper-3.4.7/conf/zoo.cfg 

- name: Prueba 
     blockinfile: 
     dest: /opt/a 
     block: | pruebaa 
     pruebaaa 

- name: Crear carpeta ZooData 
    file: path=/opt/ZooData state=directory mode=0755 
    #command: mkdir -p /opt/ZooData/ creates=/opt/ZooData/ 

- name: Permisos ZooData 
    command: chown vagrant /opt/ZooData/ 

- name: Crear carpeta name 
    file: path=/hdfs/name state=directory mode=0755 
    #command: mkdir -p /hdfs/name/ creates=/hdfs/name/ 

- name: Permisos hdfs/name 
    command: chown vagrant /hdfs/name/ 

- name: Crear carpeta journalnode 
    file: path=/hdfs/journalnode state=directory mode=0755 
    #command: mkdir -p /hdfs/journalnode/ creates=/hdfs/journalnode/ 

- name: Permisos hdfs/journalnode 
    command: chown vagrant /hdfs/journalnode/ 

- name: Archivo de configuracion slaves 
    template: src=slaves.j2 dest=/opt/hadoop-2.7.1/etc/hadoop/slaves 

任何帮助将是巨大的。谢谢

+0

你在使用ansible 2.0 beta吗? – helloV

+0

是的,我使用ansible 2.0.0,是否有问题? @helloV –

+0

不,我问,因为'blockinfile'在2.0+中支持 – helloV

回答

0

我没有合适的2.0来测试这个。在块之后不能有任何字符:|试试这个:

blockinfile: 
    dest: /opt/a 
    block: | 
    pruebaa 
    pruebaaa 
+0

感谢它是完美的@helloV –

0

我想应该有一个换行后|字符。另外一本剧本(或一般的YAML文件)必须以---开头。

+0

我试过了,但是它给出了同样的错误,我只放了一部分我的yml文件,你可以看到知道完整的main.yml。谢谢@tlo –