full-stack engineering/devops = 公司太cheap请不起系统管理员,^_^
Vagrant 确实是个好东西,我就在用他来统一所有工程师的开发环境,Vagrantfile如下- VAGRANTFILE_API_VERSION = "2"
- Vagrant.configure(VAGRANTFILE_API_VERSION) do |inst|
- inst.vm.define "web" do |config|
- config.vm.hostname = "web-dev"
- config.vm.box = "dlp"
- config.vm.network "private_network", ip: "192.168.33.10"
- config.vm.network "forwarded_port", guest: 80, host: 8089
- config.ssh.forward_agent = false
- config.vm.synced_folder "web", "/web", :owner => "www-data", :group => "www-data"
- config.vm.synced_folder "dashboard", "/dashboard", :owner => "www-data", :group => "www-data"
- config.vm.synced_folder "web/template", "/template", :owner => "www-data", :group => "www-data"
- config.vm.provider "virtualbox" do |vb|
- vb.customize ["modifyvm", :id, "--memory", "1024"]
- end
- config.vm.provision "puppet" do |puppet|
- puppet.manifests_path = "manifests"
- puppet.manifest_file = "vagrant.pp"
- puppet.module_path = 'manifests/modules'
- puppet.facter = {
- "vagrant" => 'yes'
- }
- end
- end
- inst.vm.define "queue" do |config|
- config.vm.box = "dlp"
- config.vm.network "private_network", ip: "192.168.33.11"
- config.ssh.forward_agent = false
- config.vm.provider "virtualbox" do |vb|
- vb.customize ["modifyvm", :id, "--memory", "512"]
- end
- config.vm.provision "puppet" do |puppet|
- puppet.manifests_path = "manifests"
- puppet.manifest_file = "queue.pp"
- puppet.module_path = 'manifests/modules'
- puppet.facter = {
- "vagrant" => 'yes'
- }
- end
- end
- inst.vm.define "database" do |config|
- config.vm.box = "dlp"
- config.vm.network "private_network", ip: "192.168.33.12"
- config.ssh.forward_agent = false
- config.vm.synced_folder "seed", "/seed"
- config.vm.provider "virtualbox" do |vb|
- vb.customize ["modifyvm", :id, "--memory", "1024"]
- end
- config.vm.provision "puppet" do |puppet|
- puppet.manifests_path = "manifests"
- puppet.manifest_file = "database.pp"
- puppet.module_path = 'manifests/modules'
- end
- end
- end
复制代码 当然这个三台虚拟机的overhead确实是高,不过8G内存的ubuntu跑的一点问题没有。
其中
- config.vm.synced_folder "web", "/web", :owner => "www-data", :group => "www-data"
复制代码 是用来解决一个vbox的share_folder的坑 |