Vaggrant для нескольких машин с Ubuntu - Sinatra & PostgreSQL - PullRequest
0 голосов
/ 20 ноября 2018

Я снова застрял.Мне нужно подготовить среду с несколькими компьютерами - одну виртуальную машину для приложения Sinatra и другую для его базы данных PostgreSQL.

До сих пор мне удалось запустить и запустить приложение Sinatra в окне ubuntu / xenial64, но инициализация «ломается», когда он попадает в конфигурацию для БД

Vagrant.configure("2") do |config|

  config.vm.define "app" do |app|
    # Use ubuntu/xenial64 as the virtual machine
    app.vm.box = "ubuntu/xenial64"
    # Use a private network to connect the VM to the local machine via an IP with an alias
    app.vm.network "private_network", ip: "192.168.10.100"
    app.hostsupdater.aliases = ["development.local"]
    # sync the 'app' directory in the local directory to '/app' on the VM
    app.vm.synced_folder "app", "/app"
    # Use the provisioning script in envirnonment to provision the VM for a Sinatra environment
    app.vm.provision "shell", path: "environment/app/provision.sh"
    app.vm.provision "shell", inline: set_env({ DATABASE_URL: "postgresql://myapp:dbpass@localhost:15432/myapp" })
  end

  config.vm.define "db" do |db|
    db.vm.box = "ubuntu/trusty64"
    db.vm.host_name = "postgresql"
    db.vm.network "private_network", ip: "10.0.2.15"
    # db.vm.forward_port 8000, 8000
    db.hostsupdater.aliases = ["database.local"]
    # db.vm.share_folder "home", "/home/vagrant", ".", :create => true
    db.vm.provision "shell", path: "environment/db/provision.sh", privileged: false
  end

end

Как вы, наверное, догадались, я запускаю внешний сценарий инициализации для установки PG.Странно то, что я использую скрипт, рекомендованный с собственного сайта Postgres здесь .

В отдельном месте я клонировал этот репозиторий и следовал инструкциям, и он работает абсолютно нормально, создавая правильно подготовленную виртуальную машину с установленной PG.

Однако я хочу запустить одну команду vagrant up и правильно настроить приложение и базу данных, чтобы они общались друг с другом.

Я (совершенно ясно) новичок в обеспечении и DevOps в целом, поэтому буду очень признателен за помощь.

Я загрузил мой смешно испорченный код здесь для вас, добрые души, чтобы посмотреть, если вы так склонны.

Бродячая документация на Multi-машинах довольно тонкая иGoogle не особо помогает

Спасибо!

...