zoukankan      html  css  js  c++  java
  • Create Virtual Machines with Vagrant and Puppet

    Create the following puppet manifest and start VM with vagrant, you get a base production environment.

    $ pwd
    
    /home/chad/docs/vagrant-prj/gcpserver
    
    
    
    $ cat Vagrantfile|grep -v '^s*#'
    
    VAGRANTFILE_API_VERSION = "2"
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    
      config.vm.box = "precise64"
    
      config.vm.network :public_network
    
      config.vm.provision "puppet"
    
    end
    
    
    
    $ cat manifests/default.pp
    
    package { 'vsftpd':
    
      ensure => installed,
    
    }
    
    service { 'vsftpd':
    
      ensure => running,
    
      require => Package['vsftpd'],
    
    }
    
    user { "gcp":
    
      ensure     => "present",
    
      password   => 'gcp',
    
      managehome => true,
    
    }
    
    
    
    $ vagrant init
    
    $ vagrant up
    

    But the password doesn't work, see User Password Management Fails in Puppet for reason.

    You have to modify password for user 'gcp' manually.

    The type of network is written as "bridged" in api version 1 style.

    Create multiple VMs

    To specify hostname, memory size and some other parameters of each VM, modify Vagrantfile like this:

    $ cat Vagrantfile|grep -v '^s*#'
    
    VAGRANTFILE_API_VERSION = "2"
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    
      config.vm.box = "precise64"
    
    
    
      config.vm.define "bvtserver" do |bvtserver|
    
        bvtserver.vm.hostname = "bvt-server"
    
        bvtserver.vm.network :public_network
    
        bvtserver.vm.provision :shell, path: "bvtprov.sh"
    
      end
    
    
    
      config.vm.define "production" do |production|
    
        production.vm.hostname = "gcp-server"
    
        production.vm.network :public_network
    
        production.vm.provision :puppet
    
        production.vm.provider :virtualbox do |vbox|
    
          vbox.customize ["modifyvm", :id, "--name", "ProductEnv", "--memory", 1024]
    
        end
    
      end
    
    end
    

    And add a shell script for provisioning of bvt server:

    $ cat bvtprov.sh
    
    echo "You can do some provisioning here"
    

    Ref:

    http://stackoverflow.com/questions/16740397/vagrant-network-type-bridged-is-invalid-please-use-a-valid-network-type

    http://stackoverflow.com/questions/18700060/seting-up-vm-hostname-undefined-method-hostname

  • 相关阅读:
    2.如何安装vmvare tools
    1.如何安装ubuntu
    14.如何读取配置文件的键值对
    android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?
    如何使用jedis进行发布订阅
    如何使用mybatis对mysql数据库进行操作,batis的增删改查
    如何解释json的字符串
    redis可视化工具redisClient
    如何连接远程redis,并且选择某个库进行操作
    理解RESTful架构
  • 原文地址:https://www.cnblogs.com/darkmatter/p/3606800.html
Copyright © 2011-2022 走看看