5
respostas

Erro ao iniciar o playbook pelo Vagrant

Quando eu adiciono o shell para iniciar o playbook e inicio vagrant por ele, aparece o erro abaixo e o playbook não é iniciado.

ansible: Processing triggers for man-db (2.8.3-2ubuntu0.1) ... ==> ansible: Running provisioner: shell... ansible: Running: inline script ansible: usage: ansible-playbook [-h] [--version] [-v] [-k] ansible: [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER] ansible: [-c CONNECTION] [-T TIMEOUT] ansible: [--ssh-common-args SSH_COMMON_ARGS] ansible: [--sftp-extra-args SFTP_EXTRA_ARGS] ansible: [--scp-extra-args SCP_EXTRA_ARGS] ansible: [--ssh-extra-args SSH_EXTRA_ARGS] [--force-handlers] ansible: [--flush-cache] [-b] [--become-method BECOME_METHOD] ansible: [--become-user BECOME_USER] [-K] [-t TAGS] ansible: [--skip-tags SKIP_TAGS] [-C] [--syntax-check] [-D] ansible: [-i INVENTORY] [--list-hosts] [-l SUBSET] ansible: [-e EXTRA_VARS] [--vault-id VAULT_IDS] ansible: [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES] ansible: [-f FORKS] [-M MODULE_PATH] [--list-tasks] ansible: [--list-tags] [--step] [--start-at-task START_AT_TASK] ansible: playbook [playbook ...] ansible: ansible-playbook: error: too few arguments ansible: /vagrant/configs/ansible/playbook.yml: line 1: -: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 2: $'handlers:\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 3: -: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 4: $'service:\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 5: name:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 6: state:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 7: become:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 8: $'\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 9: $'tasks:\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 10: -: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 11: $'apt:\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 12: update_cache:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 13: cache_valid_time:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 14: name:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 15: state:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 16: become:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 17: $'\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 18: -: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 19: $'mysql_user:\r': command not found ansible: /vagrant/configs/ansible/playbook.yml: line 20: login_user:: command not found ansible: /vagrant/configs/ansible/playbook.yml: line 21: name:: command not found

The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

5 respostas

Olá Fernando, tudo bem? Pude perceber que ele reclama de erros no playbook.yml como podemos ver quando ele informa:

ansible: ansible-playbook: error: too few arguments ansible

Então coloca pra gente o seu arquivo playbook.yml pra gente verificar, e possivelmente tem algumas funcionalidades que mudaram com as novas atualizações, e acho que pode ser isso.

Fico aguardando!

Fala Jonilson,

Obrigado pela rapida resposta. Segue abaixo a configuração

  • hosts: all handlers:

    • name: restart mysql service: name: mysql state: restarted become: yes

    tasks:

    • name: 'Instalar MySQL Server' apt: update_cache: yes cache_valid_time: 3600 #1 hora name: ["mysql-server-5.7", "python3-mysqldb"] state: latest become: yes

    • name: 'Criar usuario no MySQL' mysql_user: login_user: root name: phpuser password: pass priv: '.:ALL' host: '%' state: present become: yes

    • name: 'Copiar arquivo mysqld.cnf' copy: src: /vagrant/configs/mysqld.cnf dest: /etc/mysql/mysql.conf.d/mysqld.cnf owner: root group: root mode: 0644 become: yes notify:

      • restart mysql

Obrigado por disponibilizar o código aqui, porém preciso ti pedir pra colocar o código em um bloco de código, nesse mesmo campo de texto aqui do forum, você pode clicar no botão INSERIR CÓDIGO e deve ser criado um bloco de código entre três apóstrofos (`) e você pode inserir o código entre os apóstrofos, porque arquivos .yml são muito rigorosos quanto aos espaçamentos, ou então você pode disponibilizar o arquivo no GitHub ou Google Drive. Porque sem verificar os espaçamentos é difícil entender qual o problema está acontecendo!

Fico aguardando retorno!

Perdão. Não tinha me atentado a isso. Segue em forma de codigo.

- hosts: all
  handlers:
    - name: restart mysql
      service:
        name: mysql
        state: restarted
      become: yes

  tasks:
    - name: 'Instalar MySQL Server'
      apt:
        update_cache: yes
        cache_valid_time: 3600 #1 hora
        name: ["mysql-server-5.7", "python3-mysqldb"]
        state: latest
      become: yes

    - name: 'Criar usuario no MySQL'
      mysql_user:
        login_user: root
        name: phpuser
        password: pass
        priv: '*.*:ALL'
        host: '%'
        state: present
      become: yes

    - name: 'Copiar arquivo mysqld.cnf'
      copy:
        src: /vagrant/configs/mysqld.cnf
        dest: /etc/mysql/mysql.conf.d/mysqld.cnf
        owner: root
        group: root
        mode: 0644
      become: yes
      notify:
        - restart mysql

Fernando, o que pude perceber é que você não informa o passo para a criação do banco de dados, usando o mysql_db, porém ainda não acho que esse seja o erro, ele fala aparentemente que todas as linhas estão erradas, então acho que deve ser o espaçamento ou algo nesse sentido, sendo assim você poderia tentar com esse código:

---
- hosts: all
  handlers:
    - name: restart mysql
      service:
        name: mysql
        state: restarted
      become: yes

  tasks:
    - name: 'Instalar MySQL Server'
      apt:
        name:
          - mysql-server-5.6
          - python-mysqldb
        state: latest
      become: yes

    - name: 'Cria o banco MySQL'
      mysql_db:
        name: wordpress_db
        login_user: root
        state: present

    - name: 'Cria o usuário do MySQL'
      mysql_user:
        login_user: root
        name: wordpress_user
        password: '12345'
        priv: 'wordpress_db.*:ALL'
        state: present
        host: "{{ item }}"
      loop:
        - '127.0.0.1'
        - '172.17.177.40'

    - name: 'Configura MySQL para aceitar conexoes remotas'
      copy:
        src: 'files/my.cnf'
        dest: '/etc/mysql/my.cnf'
      become: yes
      notify:
        - restart mysql

E fala pra gente qual foi o resultado!