web-dev-qa-db-ja.com

REX構成管理を使用してsudoersファイルを配布する方法

Sudoersファイルを他のマシンにプッシュしようとすると、rexcmタスク/コマンドがスタックします。

問題は(私にはそう思われますが)、書き込み時にsudoersファイルがrex-userによって所有され、「その他」のアクセス許可が設定されていること、「Sudo」が失敗する原因(「SudoTRUE」が壊れることにつながること)です。 Rexfile):

mySrv:/etc# ls -l sudoers.d/                                                                                                                                                                          
-rw-rw-r--   1 rexuser rexuser   72 Jul 25 07:49 sudoersFile

ソースとテンプレートからファイルを配布しようとしました。

file "/etc/sudoers.d/sudoersFile",                                   
        #source => "files/sudoers.d/sudoersFile",                    
        owner=>"root", group=>"root", mode => "600",                    
        content => template("templates/sudoers.d/sudoersFile.tpl"),  
        on_change => sub{                                               
                say "file sudoersFile transfered";                   
        };                                                              

}; 

質問:レックス構成管理を使用してsudoersファイルを配布する正しい方法は何ですか(または:ありますか)?



更新/回避策:
(#rex @freenodeからthxから 'xq'へ)

  • ファイルをリモートシステムの一時的な場所にコピーします(上記と同じコードですが、パスが異なります)
  • ファイルを「/ etc」に移動/コピーします(「mv」のrexコマンドは「rename」であり、同じタスク定義の最後に配置されます)

    rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
    

    ...欠点:「on_change」イベントを手動で指定する必要があります

1
eli

1年に新しい啓蒙主義がなかったので、質問で言及された回避策で質問に答えるだけです:

(thxから 'xq'へ#rex @ freenodeから)

  • ファイルをリモートシステムの一時的な場所にコピーします(上記と同じコードですが、パスが異なります)
  • ファイルを「/ etc」に移動/コピーします(「mv」のrex/Perlコマンドは「rename」であり、同じタスク定義の最後に配置されます)

    rename("$tmpDir/sudoers.d/sudoersFile", "/etc/sudoers.d/sudoersFile");
    

    ...欠点:「on_change」イベントを手動で指定する必要があります

0
eli