2016-12-16 2 views
0

Я пытаюсь установить ActiveMQ с помощью кукол. этот пакет поставляется в таре. как я могу убедиться, что каждый файл выталкивается (рекурсивно) из марионетки, и он гарантирует, что служба запущена. Поскольку он имеет свой собственный исполняемый файл в каталоге bin.Установите пакет из tarball с помощью кукольного

+0

Прочитайте документацию для ресурсов 'file',' exec' и 'service'. –

ответ

0

Я бы спросил, действительно ли необходимо установить activemq из Tarball? Возможно, было бы легче управлять как пакет, например, yum или apt install.

Управление архивными картами всегда будет сложнее, особенно при обновлении версий или решении проблем, связанных с загрузкой.

Я бы рекомендовал использовать существующий модуль ActiveMQ из горна:

https://forge.puppet.com/modules?utf-8=%E2%9C%93&sort=latest_release&q=activemq

Чтобы дать вам общее представление о том, как это могло бы выглядеть, вот некоторые основные код, который может работать:

$activemq_home = "/usr/local/activemq" 

    package{"java-1.6.0-openjdk": 
    ensure => installed; 
    } 

    $activemq_version = "5.4.3" 

    user {"activemq": 
    ensure => present, 
    home => $activemq_home, 
    managehome => false, 
    shell => "/bin/sh", 
    } 

    group {"activemq": 
    ensure => present, 
    require => User["activemq"], 
    } 

    Exec{path => ["/usr/local/bin","/usr/bin","/bin"]} 

    $puppet_cache = "/usr/local/src/gitorious" 

    file {$puppet_cache: 
    ensure => directory, 
    owner => "root", 
    group => "root", 
    } 

    exec { 'download_amq_src': 
    unless => '/usr/bin/test -e ${activemq_home}/apache-activemq-${amq_version}-bin.tar.gz', 
    command => 'cd /tmp && /usr/bin/wget http://archive.apache.org/dist/activemq/apache-activemq/${amq_version}/apache-activemq-${amq_version}-bin.tar.gz',  
    require => File[$activemq_home], 
} 

# Unpack the archive in the amq user directory 
exec { 'unpack_amq_src': 
    onlyif => '/usr/bin/test -d ${activemq_home}/apache-activemq-${amq_version}-bin', 
    command => 'cd $amq_home && /bin/tar -xf /tmp/apache-activemq-${amq_version}-bin.tar.gz', 
    require => Exec['download_amq'], 
} 

    file {"/etc/init.d/activemq": 
    ensure => file, 
    mode => 755, 
    owner => "root", 
    group => "root", 
    content => template("activemq/etc/init.d/activemq.erb"), 
    require => File["/etc/activemq.conf"], 
    } 

    service{"activemq": 
    enable => true, 
    ensure => running, 
    require => File["/etc/init.d/activemq"], 
    } 

    file { "activemq.xml": 
    path => "$activemq_home/conf/activemq.xml", 
    ensure => present, 
    mode => 644, 
    owner => "activemq", 
    group => "activemq", 
    content => template("activemq/activemq.xml.erb"), 
    require => File["/etc/init.d/activemq"], 
    notify => Service["activemq"], 
    } 
+0

Большое спасибо, это было действительно полезно. :) – Akplive139

Смежные вопросы