0

PuPHPet を使用して、PHP プロジェクト ( https://puphpet.com/#create ) の Puppet 構成を作成しました。Hiera を使用していると読んだことがありますが、Puppet/Hiera の構文にはあまり詳しくありません。

同期されたフォルダーから Web ルートへのシンボリック リンクを作成したいと考えています。私は Puppet でそれを行う方法を見つけましたが、それが私の構成ファイルにどのように適合するかわかりません:

file { '/tmp/link-to-motd':
   ensure => 'link',
   target => '/etc/motd',
}

http://puppetcookbook.com/posts/creating-a-symlink.html

Hieraでこれを行うためのトリックはありますか? Hiera は YAML ファイルを使用してすべてを構成しているようです。ここで明らかな何かが完全に欠けている場合は申し訳ありません。

たとえば、config.ymlにこれがあります

vagrantfile-local:
    vm:
    ...
        synced_folder:
            0H4IdhbRXpVN:
                source: .
                target: /var/project
                sync_type: default
                rsync:
                    args:
                        - '--verbose'
                        - '--archive'
                        - '-z'
                    exclude:
                        - .vagrant/
                    auto: 'false'
...
apache:
    install: '1'
    settings:
        user: www-data
        group: www-data
        default_vhost: true
        manage_user: false
        manage_group: false
        sendfile: 0
    modules:
        - rewrite
    vhosts:
        RXTueD2ha3Pa:
            servername: mysite.dev
            docroot: /var/www/mysite
            port: '443'
            override:
                - All
            options:
                - Indexes
                - FollowSymLinks
                - MultiViews
            engine: php
            custom_fragment: ''
            ssl: '1'
            ssl_cert: ''
            ssl_key: ''
            ssl_chain: ''
            ssl_certs_dir: ''

そして、/var/www/mysite を /var/project/web へのシンボリック リンクにしたいと考えています。

これを行うための exec-once シェル スクリプトをいつでも作成できると思いますが、これを構成に入れる方法を望んでいます。

4

2 に答える 2

3

これが古いスレッドであることは認識していますが、PuPHPet で構成可能なシンボリック リンクのサポートを追加するより良い方法を次に示します。

config.yaml の下のコードを config.yaml ファイルの末尾に追加し、puphpet/puppet/site.pp に対して同じことを行います。

次に、「ソース」:「ターゲット」の形式で config.yaml のリンクの下にノードを追加/変更できます。/var/www/html/ を指す public_html と呼ばれる Vagrant のホーム ディレクトリにシンボリック リンクを配置する例を含めました。

config.yaml

symlinks:
    install: '1'
    links:
        '/home/vagrant/public_html': '/var/www/html/'

puppet/puppet/site.pp

if array_true($symlinks, 'install') {
  $symlinks['links'].each |$source, $target| {
    file { "$source":
      ensure => link,
      target => "$target",
    }
  }
}
于 2015-06-09T07:36:01.290 に答える
1

これを行う最も簡単な方法は、非常に単純な bash スクリプトを作成し、それをexec-onceフォルダーにスローすることです。これは、最初の$ vagrant up.

于 2014-08-14T04:10:12.107 に答える