java vagrant_使用Vagrant配置Puppet,正确的方法

我正在尝试使用Virtualbox和Vagrant构建虚拟环境 . 目标是能够从PC浏览器访问在虚拟机“服务器”上运行的应用程序,该应用程序与虚拟机“db”交互 .

我设法创建了虚拟机,项目还可以 . 这是目录结构:

├── MyProject

│ ├── environment

│ │ ├── Vagrantfile

│ │ ├── Manifest

│ │ │ ├── site.pp

│ │ ├── Modules

│ │ │ ├── Java

│ │ │ ├────── manifest

│ │ │ │ ├── init.pp

│ │ │ ├── Postgres

│ │ │ ├────── manifest

│ │ │ │ ├── init.pp

│ │ │ ├── Tomee

│ │ │ ├────── manifest

│ │ │ │ ├── init.pp

│ ├── Project

│ │ ├── postgres-driver

│ │ ├── tomee.xml

│ │ ├── app.war

我不确定我使用Puppet的方法是否正确 . 例如,我必须在虚拟机'web'上安装Java8 . 在Vagrant文件中:

config.vm.provision :shell do |shell|

shell.inline = "mkdir -p /etc/puppet/modules;

puppet module install puppetlabs/apt"

end

config.vm.provision :puppet do |puppet|

puppet.manifests_path = "puppet/manifests"

puppet.manifest_file = "site.pp"

puppet.module_path = "puppet/modules"

然后在Java文件夹的init.pp中:

class java {

include apt

apt::ppa { 'ppa:openjdk-r/ppa':

ensure => present, }

exec { 'apt-update':

command => '/usr/bin/apt-get update',

require => [

Apt::Ppa['ppa:openjdk-r/ppa']

],

}

package { 'openjdk-8-jdk':

require => [

Exec['apt-update'],

Apt::Ppa['ppa:openjdk-r/ppa'],

],} }

这是使用Puppet的有效方法吗?或者我应该避免在Vagrantfile中使用shell命令来安装模块?

我还想知道Puppet如何从这个init.pp文件中下载mysql . 没有安装木偶模块 .

class mysql {

package { ['mysql-server']:

ensure => present;

}

service { 'mysql':

ensure => running,

require => Package['mysql-server'];

}

file { '/etc/mysql/my.cnf':

source => 'puppet:///modules/mysql/my.cnf',

require => Package['mysql-server'],

notify => Service['mysql'];

}

exec { 'set-mysql-password':

unless => 'mysqladmin -uroot -proot status',

command => "mysqladmin -uroot password root",

path => ['/bin', '/usr/bin'],

require => Service['mysql'];

}

exec { 'load-dynamic-sql':

command => 'mysql -u root -proot < /vagrant/sites/dynamic.sql',

path => ['/bin', '/usr/bin'],

require => Exec['set-mysql-password'];

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值