Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Indentação importa no YML?

É complicado falar em quantidade de erros no exercício uma vez que sem as declarações de tasks e do módulo apt o trecho do playbook perde o sentido. Entretanto, se as linhas com as mesmas fossem adicionadas sem nenhuma alteração adicional ao código o mesmo não continuaria com um erro de indentação? Se sim, podemos considerar que o arquivo do execício possui 3 erros: além dos dois citados no exercício , um de indentação.

3 respostas

Olá, Alain.

Se as linhas com o task e apt forem adicionadas, é considerando a indentação correta sim, então seriam apenas dois erros. Pelo que eu vi aqui, você está perguntando isso porque na descrição da aula a indentação está diferente do que o professor fez no vídeo e da resposta do exercício, é isso?

De qualquer forma, a indentação da descrição do exercício está errada, vou repassar este erro para corrigirem.

Oi Vitor, quando postei a dúvida, a descrição do exercício estava com outra indentação. Pelo que entendi, no YML a indentação correta é importante pois a mesma tem função semântica. Indentações diferentes teriam significados diferentes.

Por exemplo:

      apt:
        name: php5
        state: latest
      become: yes

teeria um significado diferente de

      apt:
        name: php5
      state: latest
      become: yes

Estou correto?

Pode ser que para o exercício em questão exista mais de uma forma de indentação que mantem o significado. Mas acredito que como está agora seja uma das formas corretas (para que o exercício tenha apenas 2 erros).

---
- hosts: all
    - name: 'Instala o PHP5'
        name: php5
        state: latest
      become: yes

Pois com essa indentação, basta adicionar as duas linhas faltantes (com a indentação correta), para que o código fique completo.

---
- hosts: all
  tasks:
    - name: 'Instala o PHP5'
      apt:
        name: php5
        state: latest
      become: yes

Entretanto, você comentou que a indentação do exercício como postei acima (terceiro trecho de código) está errada. Como seria a versão correta e o que torna a indentação da descrição atual errada?

solução!

Oi Alain,

Na verdade o que eu quis dizer é que na descrição do vídeo haviam erros de alinhamento da indentação, entende? Como por exemplo o apt não estar alinhado com o name de cima (estava para trás). O tasks se não me engano também estava no lugar errado. Fazendo assim teríamos erros na hora de rodar o comando, mas já foi corrigido (foi um erro nosso, na hora de transcrever o vídeo). Do jeito que colocou agora aí, está certo mesmo.

Sobre a sua primeira pergunta, sim, no YML a indentação é muito importante pela sintaxe. No exemplo que deu, não sei nem se teria outro significado, mas testando aqui, sei que não funciona o state: latest alinhado com o apt e não com o name: php5, porque no terminal acusa problema de sintaxe.

Espero ter ficado claro, qualquer coisa é só falar.