我可以让流浪者执行一系列命令吗?在这些命令中,我可以访问shell并启动Web服务器



每次我为我们的一个项目启动流浪汉时,我都会经历以下咒语:

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还是类似的?

您可以使用shell provisioner。

在你的流浪文件中,你可以做这样的事情:

$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

用你自己的命令。

在创建环境的第一个"漫游"时,将运行资源调配。如果环境已经创建,而up只是恢复机器或启动机器,那么除非明确提供--provision标志,否则它们不会运行。

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

首先,创建一个包含命令的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/warrant/.bashrc文件复制到您的ansible文件/文件夹中。添加行

bash /path/to/shellfile.sh

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

之后,每次登录到guest时都应该执行shell脚本。

相关内容

最新更新