インストール時に(理論的には)npcdを起動するために人形を使用していますが、Ubuntuでは/ etc/default/npcdにRUN = "no"のデフォルト設定でサービスがインストールされます。
$ cat /etc/default/npcd
# Default settings for the NPCD init script.
# Should NPCD be started? ("yes" to enable)
RUN="no"
# Additional options that are passed to the daemon.
DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg"
私はこの人形の設定のブロックが事柄を処理すると思います:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
しかし、悲しいかな、そうではなく、実際に/ etc/default内のファイルを書き換える以外に、何をすべきかわかりません。私が表示していないサービスを有効にする簡単な方法はありますか?
参考までに、私はUbuntu 12.04.2とパペットバージョン3.1.0を使用しています。
そのファイルを更新してからサービスを再起動するのが唯一の方法です。新しいファイルをプッシュして、サービスにそれを要求させることができます。そうすれば、コンテンツが更新されたときにサービスが適切に開始されます。
ファイルを完全に置き換えたくない場合は、Puppet augeasツールを使用して、デフォルトファイルの1行を変更するだけです。
Debianとその派生物には、/ etc/defaultで有効になっていない限り、パッケージのインストール後に自動起動しないサービスがいくつかあります。ちょっと迷惑です。
編集:参考までに、initスクリプトは実際にそのファイルから値を読み取っています(通常はそれをソースとしています)。
その地獄のために、私は自分の12.04マシンでいくつかの標準デーモンをチェックしました。この時点でファイルを回避する方法はありません。
snmpd
# snmpd control (yes means start daemon).
SNMPDRUN=yes
collectd
# 0: start collectd on boot, 1: do not start collectd on boot
# default: 0
DISABLE=0
傀儡
# Start puppet on boot?
START=yes
mdadm
# START_DAEMON:
# should mdadm start the MD monitoring daemon during boot?
START_DAEMON=true
ハプロキシ
# Set ENABLED to 1 if you want the init script to start haproxy.
ENABLED=1
それを行うための実行可能な方法の1つは、人形でaugeasツールを使用することです。
augeas { "npcd_default":
changes => [
"set /files/etc/default/npcd/Run yes",
],
}
詳細は manual を参照してください
Sedを使用してファイルを変更します。 Augeasはやり過ぎのようです。
sed -i /etc/default/puppet -e 's/START=no/START=yes/'
ここから抜粋したアイデア:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/
だから、あなたの場合
sed -i /etc/default/npcd -e 's/RUN="no"/RUN="yes"/'
Puppetでaugeas
タイプを使用してこれを行うのは1つの方法です(@DukeLionで提案)。
もう1つの方法は、augeasproviders
プロバイダーで shellvar
module を使用することです。
shellvar { 'npcd_default':
ensure => present,
target => '/etc/default/npcd',
variable => 'RUN',
value => 'yes',
comment => 'We want npcd to run',
}
AugeasはRubyプロバイダーによってクリーンに使用されるため、これはより優れています。また、引用とコメントを自動的に管理します。