SELinux を有効にする Serverspec テスト + Chef Recipe 作成

SELinux を有効化するための、Serverspec テスト + Chef Recipe の作成を行いました。

スポンサーリンク

このエントリーは、CentOS サーバー設定用 Chef Cookbook/Recipe の目次 の一部です。

Serverspec でテストを作成しテストが失敗するのを確認

いつも通り、まずは Serverspec でテストを作成。

spec/centos.vagrant/base_selinux_enforcing_spec.rb

テスト実行。

it { should be_enforcing } と its(:content) { should match(/^SELINUX=enforcing$/) } の2箇所がテストに失敗しました。予定通りです。

SELinux を有効にする Recipe を作成

メインの Recipe です。

site-coobooks/base_cookbook/recipes/selinux_enforcing.rb

設定用(/etc/selinux/config)のファイル。

site-coobooks/base_cookbook/files/default/config

プロビジョニング後、テストが通るのを確認

プロビジョニング実行後、vagrant 仮想マシンを再起動。SELinux 設定の反映には、サーバー再起動が必要です。

もう一度テスト実行。

今度は全てのテストが通るのを確認できました。

手動で確認。

ちゃんと SELinux が有効になっています。

Recipe 中で reboot させて発生した問題

最初サーバー再起動も自動化しようとして、以下のように Recipe 中で reboot させていました。こうすると vagrant 仮想マシン上では、初回のプロビジョニングは上手くいくのですが、次回以降のプロビジョニングがエラーになるという問題が発生しました。

まあ Chef 実行中にいきなり再起動させるのだろうから、何かエラーが起こりそうな気はします…。が、エラー原因の詳細は不明。

サーバーの再起動も Recipe の中で行うものなのだろうか?一応コミュニティには、reboot-handler というそれっぽい Cookbook があるのを見つけましたが、これを使うと良いのでしょうかね。どう処理するのが定番なのかもう少し調査してみます。

reboot-handler Cookbook – Chef Supermarket

スポンサーリンク
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!