6
respostas

ERRO - ERROR! Syntax Error while loading YAML -

Boa Noite, após realizar a configuração do " Configura o wp-config com as entradas do banco de dados", recebo a mensagem de erro abaixo, alguém consegue me dar uma ajuda ?

ERROR! Syntax Error while loading YAML. did not find expected key

The error appears to be in '/home/teste/wordpress_com_ansible/provisioning2.yml': line 63, column 6, but may be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

    - { regex: 'password_here', value: '12345'}
 became: yes
 ^ here

ansible-playbook -i hosts provisioning2.yml

 password: 12345
    priv: 'wordpress_db.*:ALL'
    state: present
  • name: "Baixa o arquivo de instalação do Wordpress" get_url:

    url: 'http://wordpress.org/latest.tar.gz'
    dest: '/tmp/wordpress.tar.gz'
  • name: 'Descompacta o wordpress' unarchive:

    src: '/tmp/wordpress.tar.gz'
    dest: /var/www/
    remote_src: yes

    become: yes

  • copy: src: '/var/www/wordpress/wp-config-sample.php' dest: '/var/www/wordpress/wp-config.php' remote_src: yes become: yes

  • name: 'Configura o wp-config com as entradas do BD' ansible.builtin.replace: path: '/var/www/wordpress/wp-config.php' regexp: "{{ item.regex }}" replace: "{{ item.value }}" backup: yes with_items:

    - { regex: 'database_name_here', value: 'wordpress_db'}
    - { regex: 'username_here', value: 'wordpress_use'}
    - { regex: 'password_here', value: '12345'}

    became: yes

6 respostas

Olá, Leandro. Tudo bem?

Parece que você escreveu became na última linha, mas o correto é become. Tente substituir e diz o resultado?

Vitor, Boa Tarde. Fiz a alteração, a mensagem de erro ainda continua..

Erro:

:~/wordpress_com_ansible$ ansible-playbook -i hosts provisioning2.yml ERROR! Syntax Error while loading YAML. did not find expected key

The error appears to be in '/home/teste/wordpress_com_ansible/provisioning2.yml': line 63, column 6, but may be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

    - { regex: 'password_here', value: '12345'}
 become: yes
 ^ here

Olá, Leandro.

O YAML é bem sensível quanto à indentação. É importante que você use a mesma quantidade de espaços quando for indentar um bloco de código. Não estou conseguindo checar aqui por conta da formatação.

Sugiro que você cheque se a mesma quantidade de espaços esta sendo utilizada sempre que você indenta um bloco e se cada bloco e atributo está no seu devido lugar, comparando com o que está no curso.

Também sugiro que mande o conteúdo do seu provisioning.yml novamente, completo, dentro de um bloco de formatação de código para que a gente possa ver ele mais fielmente ao que está na sua máquina.

Você pode fazer isso clicando no botão "Inserir Código" acima do editor de texto aqui do fórum, ou escrever assim, dentro de um bloco definido com 3 crases;

```

Seu Código

```

Ou pode compartilhar o arquivo pelo Google Drive.

 - name: 'Cria o usuário do mysql'
    mysql_user:
        login_user: root
        name: wordpress_user
        password: 12345
        priv: 'wordpress_db.*:ALL'
        state: present


  - name: "Baixa o arquivo de instalação do Wordpress"
    get_url:
        url: 'http://wordpress.org/latest.tar.gz'
        dest: '/tmp/wordpress.tar.gz'

  - name: 'Descompacta o wordpress'
    unarchive:
        src: '/tmp/wordpress.tar.gz'
        dest: /var/www/
        remote_src: yes
    become: yes

  - copy:
       src: '/var/www/wordpress/wp-config-sample.php'
       dest: '/var/www/wordpress/wp-config.php'
       remote_src: yes
    become: yes

  - name: 'Configura o wp-config com as entradas do BD'
    ansible.builtin.replace:
       path: '/var/www/wordpress/wp-config.php'
       regexp: "{{ item.regex }}"
       replace: "{{ item.value }}"
       backup: yes
    with_items:
        - { regex: 'database_name_here', value: 'wordpress_db'}
        - { regex: 'username_here', value: 'wordpress_use'}
        - { regex: 'password_here', value: '12345'}
     become: yes

Vitor, boa tarde. Segue o meu código...

Oi, Leandro.

Se a formatação do código não tiver sido mudada quando você colou aqui, parece que há um espaço a mais antes da palavra become. Eu adicionei o underline para mostrar onde está o espaço. Os campos que estão no mesmo nível precisam ter o mesmo alinhamento.

  - name: 'Configura o wp-config com as entradas do BD'
    ansible.builtin.replace:
       path: '/var/www/wordpress/wp-config.php'
       regexp: "{{ item.regex }}"
       replace: "{{ item.value }}"
       backup: yes
    with_items:
        - { regex: 'database_name_here', value: 'wordpress_db'}
        - { regex: 'username_here', value: 'wordpress_use'}
        - { regex: 'password_here', value: '12345'}
    _become: yes