2016-11-12 17 views
6

Tôi đang cố chuyển một lệnh đơn giản đến máy ảo.Vagrant ssh --command không hoạt động

vagrant ssh -c "mysql -u root -e'CREATE DATABASE testing';" 

db không được tạo. Thay vào đó tôi chỉ nhận được 'đăng nhập' vào máy lang thang qua ssh.

Điều tương tự cũng xảy ra khi tôi chạy

vagrant ssh -c "touch test.txt" 

Tôi cũng đã thử với:

  • dấu nháy đơn xung quanh lệnh
  • --command thay vì viết tắt -c

Bất kỳ ý tưởng gì đi ing vào?

Sửa

tôi sẽ phân phối kịch bản của tôi và nó sẽ tích hợp kịch bản của tôi với Homestead, như vậy có thể không thực sự tinh chỉnh cấu hình lang thang.

Sửa

Kể từ khi tôi đang sử dụng Homestead người sử dụng và pw là khác nhau. Nó phải là

vagrant ssh -c "mysql -u homestead -psecret -e'CREATE DATABASE testing;'" 

không thay đổi mã ở trên để tránh nhầm lẫn với câu trả lời đã gửi.

Nhưng dù sao, điều này không giải quyết được vấn đề. Điều tương tự cũng xảy ra như mô tả ở trên.

Trả lời

0

Bạn có thể thử thêm lệnh đó vào tập tin bootstrap của bạn và sau đó sử dụng

vagrant provision 

.

Ví dụ Vargant tập

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

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

    config.vm.network "forwarded_port", guest: 8080, host: 8080 

    config.vm.provision :shell, path: "bootstrap.sh" 

    config.vm.provider "virtualbox" do |v| 
     v.memory = 1024 
    end 

    config.vm.synced_folder "./", "/vagrant", id: "vagrant-root", 
     owner: "vagrant", 
     group: "www-data", 
     mount_options: ["dmode=777,fmode=777"] 

end 

Ví dụ bootstrap.sh tạo ra một cơ sở dữ liệu Postgres với lệnh của bạn trong đó. Bạn sẽ phải chắc chắn rằng bạn đã cài đặt các gói mysql đúng.

#!/usr/bin/env bash 

add-apt-repository ppa:ondrej/php5-5.6 
apt-add-repository ppa:chris-lea/redis-server 

apt-get update 

apt-get install -y --force-yes python-software-properties 

apt-get install -y --force-yes postgresql postgresql-contrib 

apt-get install -y --force-yes redis-server 
apt-get install -y --force-yes apache2 
apt-get install -y --force-yes php5 
apt-get install -y --force-yes php5-imagick 
apt-get install -y --force-yes php5-redis 
apt-get install -y --force-yes php5-mcrypt 
apt-get install -y --force-yes phppgadmin 
apt-get install -y --force-yes php5-gd 
apt-get install -y --force-yes php5-intl 
apt-get install -y --force-yes php5-sqlite 
apt-get install -y --force-yes php5-curl 
apt-get install -y --force-yes git 

if ! [ -L /var/www ]; then 
    rm -rf /var/www 
    mkdir /var/www 
    ln -fs /vagrant /var/www/vagrant-referron-com 
    # 
    sed -i "s#DocumentRoot /var/www/html#DocumentRoot /var/www#g" /etc/apache2/sites-available/000-default.conf 

fi 
sed -i "s#AllowOverride None#AllowOverride All#g" /etc/apache2/sites-available/000-default.conf 
sed -i "s#AllowOverride None#AllowOverride All#g" /etc/apache2/apache2.conf 


# copy the phppgadmin configuration 
cp -f /vagrant/development/postgres/phppgadmin /etc/apache2/conf.d/ 
cp -f /vagrant/development/postgres/phppgadmin.conf /etc/apache2/conf-enabled/ 
cp -f /vagrant/development/postgres/config.inc.php /etc/phppgadmin/ 

# create the postgres database and user 
sudo -u postgres createdb sometestdatabase 
sudo -u postgres psql -U postgres -d postgres -c "alter user postgres with password 'postgres';" 

# calling mysql to create your testing database. 
sudo mysql -u root -e 'CREATE DATABASE testing ;' 


# enable server to listen to port 8080 
cp -f /vagrant/development/ports.conf /etc/apache2/ 

# install the other apache modules 
a2enmod rewrite 
php5enmod mcrypt 


apachectl restart 
+0

Cảm ơn, cho điều này, nhưng tôi có kế hoạch phân phối kịch bản của tôi và không thể rối tung với vagrantfiles. Tôi đang cố gắng tích hợp với homestead cụ thể. Cảm ơn mặc dù. Xin lỗi lỗi của tôi vì không chỉ định –

0

thử để trực tiếp sử dụng ssh thay vì lang thang:

ssh vagrant -c 'your command' 

bạn cũng có thể cần phải xác định máy chủ lưu trữ lang thang trong số ~/.ssh/config

Host vagrant 
    HostName 127.0.0.1 
    User vagrant 
    Port 2222 
    IdentityFile ~/.vagrant.d/insecure_private_key 
    UserKnownHostsFile /dev/null 
    StrictHostKeyChecking no 
    PasswordAuthentication no 
    IdentitiesOnly yes 
    LogLevel FATAL 
    ForwardAgent yes 
Các vấn đề liên quan