我可以让流浪汉执行一系列命令,我获得shell访问权限并启动网络服务器吗?

时间:2014-10-23 09:28:33

标签: vagrant

每当我为我们的一个项目启动游民时,我都会经历以下咒语:

vagrant up
vagrant ssh
sudo su deploy
supervisorctl stop local
workon odoo-8.0
/home/deploy/odoo/build/8.0/openerp-server -c /home/deploy/odoo/local/odoo_serverrc

以一种让我看到终端输出的方式运行服务器。有没有办法可以把这一切都打包好所以我可以说; vagrant dev或其他一些?

2 个答案:

答案 0 :(得分:0)

您可以使用shell配置程序。

在你的vagrantfile中,你可以这样做:

$script = <<SCRIPT
echo I am provisioning...
date > /etc/vagrant_provisioned_at
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
end

您可以替换

echo I am provisioning...
date > /etc/vagrant_provisioned_at

使用您自己的命令。

在创建环境的第一个“vagrant up”上,运行配置。如果环境已经创建并且up只是恢复计算机或启动它,除非明确提供--provision标志,否则它们将不会运行。

还有很多好方法可供选择,我也建议使用Ansible。这是您可以阅读的文档: https://docs.vagrantup.com/v2/provisioning/basic_usage.html

答案 1 :(得分:0)

首先,使用您的命令创建一个shell脚本:

#!/bin/bash
vagrant up
vagrant ssh
sudo su deploy
supervisorctl stop local
workon odoo-8.0
/home/deploy/odoo/build/8.0/openerp-server -c /home/deploy/odoo/local/odoo_serverrc

把它放在你的客人的某个地方用ansible。接下来,将/home/vagrant/.bashrc文件复制到您的ansible文件/文件夹中。添加行

bash /path/to/shellfile.sh

到.bashrc并确保ansible将其复制到您的访客中。

之后,每次登录guest虚拟机时都应执行shell脚本。