9718


ネットワーク/サーバー構築初学者です。  
おかしなことも書いてしまってるかもしれませんがよろしく願いします。

Windows7にて vagrant 1.7.2とvirtualbox4.3.26
の組み合わせで、仮想のプライベートネットワークを作成し、複数のゲストマシンを起動させています。ゲストOSは全てCentOS 6.6です。

この環境で今、puppetを使う練習をしています。  
初心者なのでpuppet master や agent は使わず(≒使えず)、puppet apply
コマンドのみを使いスタンドアローン実行ばかり試しているところです。  
１台のマシンでの動作は大体できるようになってきたので、これの応用として、複数のマニフェストを作成し、それをネットワークの各ホストから取得させた後、それぞれにpuppet
apply を実行させる試みをしようと思いました。  
（後々、vagrant のプロヴィジョニングにも応用できるであろうという狙いです)

そこでファイルの配布ツールにはrsyncを選びました。  
ソースからmakeして最新バージョン3.1.1をゲストマシン全機にインストールした後、マニフェストファイルを一括管理しているサーバーでrsyncをデーモン起動させる手順(rsync
--daemonの実行)までは動作確認できました。

さらにもう一歩踏み込んで、rsync をpostfix等のデーモンと同じようにservice コマンドで起動・停止させたいと思ってます。

なのでまずは

[code]

    chkconfig --add rsyncd
    
[/code]

とコマンド実行したのですが、

[code]

    サービス rsyncd は、chkconfig をサポートしていません。
    
[/code]

というエラーが出てしまい、それ以降全く埒があきません。  
これは一体どういうことなのでしょうか。  
色々調べてみたのですがxinetdが関係しているらしい、等の情報は見つかれども、ps -aux で確認しても xinetd
という名前は出てこないし、訳が分からないまま答えにまでたどり着けません。  
このまま続けても答えが探せそうな気がしないので、これの理由を知ってる方がいらしたらどうかご教示お願いいたします。

以下はサービスとして起動するために書いた設定ファイルです。  
他にも必要な情報があれば教えてください。

/etc/rsyncd.conf:

[code]

    syslog facility = local5
    
    use chroot = yes
    uid = nobody
    gid = nobody
    max connections = 20
    timeout = 600
    read only = yes
    
    [puppet]
        path = /vagrant/puppet
        host allow = <%= settings['host_allow'] %>
        refuse options = checksum
        dont compress = *
    
[/code]

/etc/init.d/rsyncd:

[code]

    #!/bin/bash
    
    # Source function library.
    . /etc/init.d/functions
    
    [ -f /usr/local/bin/rsync ] || exit 0
    
    case "$1" in
      start)
        action "Starting rsyncd: " /usr/local/bin/rsync --daemon
        ;;
      stop)
        action "Stopping rsyncd: " killall rsync
        ;;
      *)
        echo "Usage: rsyncd {start|stop}"
        exit 1
    esac
    
    exit 0
    
[/code]

※ファイルの内容はこちらを参考にしました(SELinux云々のところは取り入れていません) --
<https://access.redhat.com/documentation/ja-
JP/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-
Managing_Confined_Services-rsync-Configuration_Examples.html>

ファイル名と権限:

[code]

    $ ls -aFl /etc/init.d/rsyncd
    -rwxrw-rw-. 1 root root 322  4月 30 22:00 2015 /etc/init.d/rsyncd*
    
[/code]


CC BY-SA 3.0
2015-04-30T13:26:57.777
9701
2015-05-02T23:15:17.820
2015-04-30T14:05:55.040
9403
9403
question
centos vagrant rsync
"chkconfig --add rsync" と実行すると「サービス rsyncd は、chkconfig をサポートしていません。」とエラーになる


/etc/init.d/rsyncdファイルにchkconfigの構成用のコメントが付いていないのが原因ではないでしょうか。  
たとえば/etc/init.d/postfixには`# chkconfig: 2345 80
30`と書いた行があります。これ、シェルスクリプトの構文としてはコメントですが、chkconfigはここをみてどうやって登録するか決めます。  
とりあえず動けばいいなら同じ内容を記述して`chkconfig --add rsyncd`すればたぶん動きます。  
起動と停止の優先順位はそれなりに意味があるのですが、それはお使いのシステムの構成次第なので提示されている情報ではこれが最適というのは出せないです。が、postfixと同じでそれほど問題無いように思われます。


CC BY-SA 3.0
2015-04-30T23:47:14.120
9718
2015-04-30T23:47:14.120
8136
9701
answer


rsyncd についてあまり情報が見つからず、また chkconfig の標準  
サポートがなされていない原因は、ssh 経由で使うことがほとんど  
だからではないでしょうか。

ssh を経由すれば通信路も暗号化されるし、認証も ssh に任せられます。  
私も職場で rsync は普通に使っていますが、サービスとしては動かして  
いません。


CC BY-SA 3.0
2015-05-01T02:03:51.580
9724
2015-05-01T02:03:51.580
1046
9701
answer


/etc/init.d/rsyncd については他の方がご指摘のとおり、"# chkconfig: ..." 行が無いためと思います。

rsync をソースからコンパイル、インストール済みのようですが、CentOS 6.x で提供されている rsync
パッケージを利用する方法もあります。xinetd から起動する設定ファイル /etc/xinetd.d/rsync も含まれています。xinetd
がインストールされていなければ、インストール、起動する必要があります。

[code]

    # yum install rsync xinetd
    # service xinetd start
    # chkconfig rsync on
    # ss -tln
      (TCP 873 番ポートが LISTEN していることを確認)
    
[/code]


CC BY-SA 3.0
2015-05-01T03:20:38.973
9728
2015-05-01T03:20:38.973
4603
9701
answer


横槍刺しますぶすり。

メンテナンスを考えてgitサーバーとかはいかがてしょうか。puppet applyのソースというならclone/pullあたりで取ればいいだけになります。


CC BY-SA 3.0
2015-05-02T23:15:17.820
9784
2015-05-02T23:15:17.820
2236
9701
answer