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

Conexão Recusada

Boa noite senhores.

Eu instalei as 3 maquinas com os arquivos do index.php, phpweb, playbook.yml e Vagrantfile e os arquivos de hosts conforme o video explica.

Porem quando eu tento conectar em localhost:8888, aparece a mensagem de Connection Refused. Eu acho que deve ser alguma conexão com o banco de dados. Eu analisei os arquivos e estão com o mesmo usuario e senha. user:phpuser, senha: pass.

Obrigado desde ja.

9 respostas

Segue abaixo o arquivo do Vagrantfile:

$script_mysql = <<-SCRIPT
  apt-get update && \
  apt-get install -y mysql-server-5.7 && \
  mysql -e "create user 'phpuser'@'%' identified by 'pass';"
SCRIPT


Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  # config.vm.define "mysqldb" do |mysql|
  # #  config.vm.network "private_network", ip: "192.168.50.4"
  # #  config.vm.network "private_network", type: "dhcp"
  # #  config.vm.network "public_network"
  #   mysql.vm.network "public_network", ip: "192.168.1.17"
  #
  # # Comandos dentro da maquina virtual, os comandos são automaticamentos como sudo
  #   mysql.vm.provision "shell",
  #     inline: "cat /configs/id_bionic.pub  >> .ssh/authorized_keys"
  #   mysql.vm.provision "shell", inline: $script_mysql
  #   mysql.vm.provision "shell",
  #       inline: "cat /configs/mysqld.cnf  > /etc/mysql/mysql.conf.d/mysqld.cnf"
  #   mysql.vm.provision "shell", inline: "service mysql restart"
  #
  #   mysql.vm.synced_folder "./configs", "/configs"
  #   mysql.vm.synced_folder ".", "/vagrant", disabled: true
  #
  # end

  config.vm.define "phpweb" do |phpweb|
    phpweb.vm.network "forwarded_port", guest: 8888, host: 8888
    phpweb.vm.network "public_network", ip: "192.168.1.18"

    phpweb.vm.provision "shell",
      inline: "apt-get update && apt-get install -y puppet"

    phpweb.vm.provision "puppet" do |puppet|
      puppet.manifests_path = "./configs/manifests"
      puppet.manifest_file = "phpweb.pp"
    end
  end

  config.vm.define "mysqlserver" do |mysqlserver|
    mysqlserver.vm.network "public_network", ip: "192.168.1.19"

    mysqlserver.vm.provision "shell",
      inline: "cat /vagrant/configs/id_bionic.pub  >> .ssh/authorized_keys"
    end

    config.vm.define "ansible" do |ansible|
      ansible.vm.network "public_network", ip: "192.168.1.20"

      ansible.vm.provision "shell",
        inline: "cp /vagrant/id_bionic  /home/vagrant && \
                chmod 600 /home/vagrant/id_bionic && \
                chown vagrant:vagrant /home/vagrant/id_bionic"

      ansible.vm.provision "shell",
        inline: "apt-get update && \
                 apt install -y software-properties-common && \
                 apt-add-repository --yes --update ppa:ansible/ansible && \
                 apt install -y ansible"


    end
end

Abaixo os arquivos de hosts

[mysqlserver]
192.168.1.19

[mysqlserver:vars]
ansible_user=vagrant
ansible_ssh_private_key_file=/home/vagrant/id_bionic
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_commom_args='-o StrictHostKeyChecking=no'

Abaixo o playbook

- 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

Abaixo o arquivo phpweb

# https://www.digitalocean.com/community/tutorials/getting-started-with-puppet-code-manifests-and-modules

# execute 'apt-get update'
exec { 'apt-update':                    # exec resource named 'apt-update'
  command => '/usr/bin/apt-get update'  # command this resource will run
}

# install php package
package { ['php7.2', 'php7.2-mysql']:
  require => Exec['apt-update'],        # require 'apt-update' before installing
  ensure => installed,
}

# execute 'apt-get update'
exec { 'run-php7':                    # exec resource named 'apt-update'
  require => Package['php7.2'],        # require 'apt-update' before installing
  command => '/usr/bin/php -S 0.0.0.0:8888 -t /vagrant/src &'  # command this resource will run
}

E por ultimo o arquivo do index.php

<?php
echo "Testando conexao <br /> <br />";
$servername = "192.168.1.19";
$username = "phpuser";
$password = "pass";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Conexão falhou: " . $conn->connect_error);
}
echo "Connetado com sucesso";
?>

Eu estou esquecendo algo? rs

Obrigado novamente pessoal.

Olá Fernando, tudo bem? Não acho que seja bem isso, mais no seu arquivo hosts a última linha é (é common em vez de commom ):

ansible_ssh_common_args='-o StrictHostKeyChecking=no'

Outra coisa, você verificou se todos os IPs estão livres na sua rede local? Verifica e fala pra gente!

Fico aguardando retorno!

Oi Jonilson,

Eu fiz esta alteração e mesmo assim o problema persiste.

solução!

Oi Jonilson,

Funcionou depois que eu coloquei as linhas abaixo:

    ansible.vm.provision "shell",
      inline: "ansible-playbook -i /vagrant/configs/ansible/hosts \
                  /vagrant/configs/ansible/playbook.yml"