3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

APF ファイアウォールの導入と設定のレシピ

Last updated at Posted at 2015-10-02

#[SoftLayerクッキングLABO] (http://qiita.com/MahoTakara/items/464da29ccf932698b753)

このレシピで出来ること

SoftLayer カスタマー・ポータルからサーバーをオーダーする場合には、OSファイアウォールのAPFの導入を設定できるのですが、コマンドラインからでは、APFをサーバーに導入する指定ができません。 このレシピでは、APFの導入、ルール設定、OS起動時の自動起動までを実現したいと思います。

レシピの要約

この apf01 レシピでは、以下の作業を自動化しています。

  • APFのファイルを管理対象サーバーに配置する
  • APFのイントールを実行
  • ファイアウォールのルールファイルを配置
  • 起動スクリプトを Ubuntu 用に修正
  • APFの起動設定
  • サービスの起動

レシピの説明

解説用のバージョンで、GitHubに登録したものが最新版です。

# 変数の定義 
filename = "apf-current.tar.gz"
file_checksum = "793d83ca2657b86b86a23b1c3fe08ee436df8c4a83ef84c92f0f11689531a2cc"
work_dir = "/root/_apf_work"

# APFインストール用のファイルを root のホームディレクトリに置く
cookbook_file "/root/#{filename}" do
  source "#{filename}"
  checksum "#{file_checksum}"
end

# APFを展開してインストールシェルを実行
script "install_apf" do
  interpreter "bash"
  user        "root"
  code <<-EOL
    install -d #{work_dir}
    tar zxvf /root/#{filename} -C #{work_dir}
    cd #{work_dir}/apf-9.7-2
    sh install.sh
  EOL
end

# APFの設定ファイルをテンプレートから作成します
template "/etc/apf/conf.apf" do
  owner "root"
  group "root"
  mode 0640
  source "conf.apf.erb"
  action :create
end

#
# Debian/Ubuntuでは起動シェルに変更を加える
# RedHat/CentOS 7 では、ifconfig を追加でインスールする
#
case node['platform']
when 'ubuntu','debian'
  bash "edit /etc/init.d/apf" do
    only_if { File.exists?("/etc/init.d/apf") }
    code <<-EOC
      sed -i -e "s/^\\. \\/etc\\/rc.d\\/init.d\\/functions/# &/g" /etc/init.d/apf;
      sed -i -e "s/echo_success/# &/g" /etc/init.d/apf
    EOC
  end
  #
  execute 'update-rc.d apf defaults' do
    command "update-rc.d apf defaults"
  end
when 'centos','redhat'
  if node['platform_version'].to_i == 7 then
    package 'net-tools' do
      action :install
    end
  end
end  # node['platform']

# 
service "apf" do
  action [:enable, :start]
end

対応するソフトレイヤー活用ガイド

確認済みのLinuxディストリビューション

  • Ubuntu 14.04 64bit minimal install
  • CentOS 7 64bit minimal install
  • CentOS 6 64bit minimal install
  • Debian 7 64bit minimal install

レシピの置き場所

Chef 関連マニュアル

管理対象サーバーへの設定実行

Chef-Solo を利用の例で、管理対象サーバーの状態によって、以下の2つのオプションを使い分けます。

初回 Chefのクライアントも含めてインストールする場合

chef@ChefWs:~/chef-repo$ knife solo bootstrap 10.132.253.7 -x root -r 'recipe[apf01]' -i ~/key/chefkey

既存の設定に更新する場合

chef@ChefWs:~/chef-repo$ knife solo cook 10.132.253.7 -x root -r 'recipe[apf01]' -i ~/key/chefkey

レシピ作成の準備

前述のGitHubからクローンする場合は、apfのtarファイルも含まれているので、以下の作業は必要なのですが、今後リリースされる apf の最新版を利用する場合を考慮して記載します。

Chefのリポジトリに移動して、ひな形を作っていきます。

chef@ChefWs:~/chef-repo$ pwd
/home/chef/chef-repo

knifeコマンドで site-cookbooks の下に apf01 というレシピを作ります。 cookbooks を作ると knife solo コマンドを動かした場合、削除されるので注意が必要です。

chef@ChefWs:~/chef-repo$ knife cookbook create apf01 -o site-cookbooks
** Creating cookbook apf01 in /home/chef/chef-repo/site-cookbooks
** Creating README for cookbook: apf01
** Creating CHANGELOG for cookbook: apf01
** Creating metadata for cookbook: apf01

apf01 というクックブックが出来ている事を確認

chef@ChefWs:~/chef-repo$ ls -l site-cookbooks/
合計 4
drwxrwxr-x 10 chef chef 4096 10月  1 22:11 apf01

最新のAPFをダウンロードして、apf01 クックブックの files/default に置くために、ディレクトリを移動します。

chef@ChefWs:~/chef-repo/cookbooks/apf01/files/default$ pwd
/home/chef/chef-repo/cookbooks/apf01/files/default

APFのホームページからダウンロードして、レシピ apf01 の files に保存します。

chef@ChefWs:~/chef-repo/cookbooks/apf01/files/default$ wget http://www.rfxn.com/downloads/apf-current.tar.gz
--2015-10-01 11:19:49--  http://www.rfxn.com/downloads/apf-current.tar.gz
www.rfxn.com (www.rfxn.com) をDNSに問いあわせています... 129.121.132.46
www.rfxn.com (www.rfxn.com)|129.121.132.46|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 107699 (105K) [application/x-gzip]
`apf-current.tar.gz' に保存中

100%[=======================================================================>] 107,699      149KB/s   時間 0.7s 

2015-10-01 11:19:55 (149 KB/s) - `apf-current.tar.gz' へ保存完了 [107699/107699]

後でレシピにセットするために sha256sum を計算しておきます。

chef@ChefWs:~/chef-repo/cookbooks/apf01/files/default$ sha256sum apf-current.tar.gz 
793d83ca2657b86b86a23b1c3fe08ee436df8c4a83ef84c92f0f11689531a2cc  apf-current.tar.gz

サーバー毎に個別に必要なファイアウォールのルールは、以下のテンプレートファイルを編集します。

apf01/templates/conf.apf.erb

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?