Chef soloの環境構築・レシピ実行(2) ランリスト作ってリモートでレシピ実行

▼この記事をSNSでシェアする▼

スポンサーリンク

スポンサーリンク

今回は前回の(1)の続きです。

レシピを直接実行していていけてないので、今回は実践的に仮想OSに接続してそこでランリストに指定したレシピの実行をやります。

以下の「環境」と「仮想環境構築」の説明は前回の記事と一緒ですので、前回の記事をご覧になった方は飛ばしていただいて問題ありません。

環境

最初は仮想マシンをubuntuにしてやろうとおもったのですが、yumが標準で入ってなくて少しだけ面倒だったのでなんとなくCentOS7でやりました。

AWSではなくVagrantでやろうとおもったのは、AWSの無料期間過ぎてしまったからです。

AWSなどのクラウドでやる場合は、下記の手順でホスト名とかが少し変わるだけのはずです・・・

ホストOS

  • Mac OS X High Sierra 10.13.6
  • Vagrant 2.2.4
  • Virtual Box 6.0.6
  • Chef Development Kit Version 3.9.0
  • chef-client version 14.12.3
  • delivery version: master (9d07501a3b347cc687c902319d23dc32dd5fa621)
  • berks version 7.0.8
  • kitchen version 1.24.0
  • inspec version 3.9.3

ゲストOS

  • CentOS7
  • Chef Development Kit Version 2.4.17
  • chef-client version 13.6.4
  • delivery version master (73ebb72a6c42b3d2ff5370c476be800fee7e5427)
  • berks version 6.3.1
  • kitchen version 1.19.2
  • inspec version: 1.45.13

仮想環境構築

Virtual BoxとVagrantで仮想OSを作成します。

Virtual Boxの公式サイトからMac OS Xの最新イメージをダウンロードし、Vagrantの公式サイトから「Download」をクリックして、Mac OS Xの「64-bit」をクリックして最新のイメージをダウンロード

セットアップ完了すると、vagrantのバージョンが確認できるはず

CentOSを入れて起動します

{host-name/ip address}のところにはゲストOSのホスト名かIP アドレスが入ります。

面倒だったといえばそれまでなのですが、ぼくはこの記事に載っている{host-name/ip address}を、private_networkのIPである「192.168.33.10」に置き換えて以下の手順を実行しました。

ホスト名を指定したい場合、以下を実行すればおそらくできます。

  • VagrantFileに「config.vm.hostname=”任意のホスト名”」を追記する
  • /etc/hostsに任意のホスト名とIP(192.168.33.10)を追加する

➡︎プラグインが便利らしい

参考:https://qiita.com/tag1216/items/0d10f67cb55651740df4

※当然vagrantでない場合は設定が異なります

ホストOSへのchef導入

<rubyのバージョンが古くbundleのインストール失敗した場合>

下記のメッセージが出てbundleインストールする時に失敗しました。

Gem::InstallError: ohai requires Ruby version >= 2.5.

An error occurred while installing ohai (15.1.5), and Bundler cannot continue.

Make sure that gem install ohai -v '15.1.5' --source 'https://rubygems.org/' succeeds before bundling.

ぼくの実行環境はruby 2.3.1だったので2.5.0以上にしなきゃいけなかったっぽいです。

これでbundleでのインストールが正常にできるようになりました

ランリストに指定したレシピを実行

前回のように、ここのレシピを指定して、chef-soloを実行することもできるのですが、

実用的にリモートから実行するわけですし、dstat,httpd,mysqlのサービスをインストールする個別のレシピを作成し、ランリストでそれらを指定し実行してみましょう

レシピ作成

ランリスト作成・実行

まとめ

本来のサーバー構成の自動化ツールとしての用途っぽく使ってみました。

次はリリースジョブとかをchefで実現してみたい。

合わせて読みたい

スポンサーリンク


関連記事

▼この記事をSNSでシェアする▼

フォローする

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(ITコンサル)
◆santaka(SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する