いいえ、VM にインストールしても vagrant ファイルは変更されません。
クライアントに自分と同じマシンを持たせたい場合は、VM のシェルからソフトウェアをインストールしないようにする必要があります。mysql テーブル、Apache 仮想ホストなど、すべてのプロビジョナーのみを使用する必要があります。
を使用せずvagrant box add ubuntu1 http://goo.gl/KwQSa2
、ボックスの URL を vagrantfile に追加します。
config.vm.box_url = "http://goo.gl/KwQSa2"
mysql/php サーバーの puppet プロビジョニングの例:
group { 'puppet':
ensure => 'present',
}
#
# Apache configuration
#
class { 'apache' :
default_mods => false,
default_confd_files => false,
mpm_module => 'prefork',
default_vhost => false,
sendfile => 'Off'
}
class { 'apache::mod::php' : } # mod_php
class { 'apache::mod::rewrite' : } # mod_rewrite
# VHost configuration
apache::vhost { 'dev.XXX.fr' :
port => '80',
docroot => '/var/sites/myXXX/web',
access_log => true,
access_log_file => 'XXX_access.log',
error_log => true,
error_log_file => 'XXX_error.log',
aliases => [{alias => '/myXXX', path => '/var/sites/toto/web'}],
directories => [{path => '/var/sites/myXXX/web', 'allow_override' => ['FileInfo', 'Indexes']}, {path => '/var/sites/toto/web', 'allow_override' => ['FileInfo', 'Indexes']}]
}
#
# Mysql configuration
#
class { '::mysql::server' :
root_password => 'XXX',
databases => {
'XXX' => {
ensure => 'present',
charset => 'utf8'
}
},
users => {
'XXX@localhost' => {
ensure => 'present',
password_hash => 'XXX' # XXXmdp
}
},
grants => {
'XXX@localhost/XXX' => {
ensure => 'present',
options => ['GRANT'],
privileges => ['SELECT', 'INSERT', 'UPDATE', 'DELETE', 'CREATE'],
table => 'XXX.*',
user => 'XXX@localhost'
}
}
}
class { '::mysql::client' : }
package { 'php5-mysql' :
require => [Class['apache::mod::php'], Class['::mysql::server']],
ensure => 'present'
}
次のモジュールが必要です。
上記の puppet 設定は単なる例です。非常によくできたドキュメントを読むことを強くお勧めします: http://docs.puppetlabs.com/learning/introduction.html
正直なところ、パペットは素晴らしいツールです。時間をかけて習得してください。
もう1つ、シェルプロビジョンナーの使用を避けてください。コマンドは「vagrant provision」を実行するたびに実行され、パペットは変更のみを実行します。(apt-get update と apt-get upgrade にはシェル プロビジョンナーのみを使用します)