Help us understand the problem. What is going on with this article?

[苦戦中][メモ]chef-container / knife-container

More than 5 years have passed since last update.

昨日の楽天でのセミナーでchefの中の人に,chef-containerを紹介してもらったんで,早速やってみたら,さっそくハマった話。

そもそもchefを触ったことないヤツが,中途半端な事前知識で突撃する物語。

chefのインストール

chefDKをダウンロードしてrpmインストール。 (書いてある通りにやる)
今回はcentos6に入れたので,RHELのインストーラを取ってきた。

Proxy環境下でのgem

毎回ハマるproxy
gemが参照するのは/etc/environmentらしい。

参考: http://qiita.com/Kentrow@github/items/b5a7dc8819a2e0e0f603

/etc/environment
http_proxy="http://USER:PASS@URL:PORT"
https_proxy="http://USER:PASS@URL:PORT"

"で囲うのが特徴的。

(しかし,自分のプロキシの情報が,あっちこっちに記述されてて,メンテできん。。。)

knife-container/chef-containerインストール

chef gem install knife-container
chef gem install chef-container

頭にsudoを最初つけていたら,rootのchefにインストールされてしまう模様。注意。
公式にはchef-containerの記述はなかった。knifeだけでいいのかな?(よくわかってない)

knife-containerやってみる

その前にchef-repoを作っておいた方がいいらしいので,knifeで作る

$ chef gem install knife-solo
$ knife solo init chef-repo
$ cd chef-repo

いよいよknife-containerを叩く。
公式に記述してあるヤツをそのまま叩く。
https://docs.getchef.com/containers.html

$ knife container docker init docker -r 'recipe[apache2]' -z -b
...
Context Created: ./dockerfiles/docker
$ tree dockerfiles/
dockerfiles/
└── docker
    ├── Berksfile
    ├── Dockerfile
    └── chef
        ├── first-boot.json
        └── zero.rb

おおお,それっぽい!

dockerfiles/docker/Dockerfile
# BASE chef/ubuntu-12.04:latest
FROM docker
ADD chef/ /etc/chef/
RUN chef-init --bootstrap
RUN rm -rf /etc/chef/secure/*
ENTRYPOINT ["chef-init"]
CMD ["--onboot"]

Dockerfileもできてる模様。なるほど,chefフォルダを/etc/chefにマウントして,chef-initを叩く,,,と (Dockerfileは読める)

buildしてみる

このディレクトリでいいのかなーと思ってとりあえず叩いてみる

$ knife container docker build docker -z
...
 no Dockerfile found in ./dockerfiles/docker

!?

なんか,色々うまくいってそうな雰囲気だったのに><

$ tree dockerfiles/
dockerfiles/
└── docker
    ├── Berksfile
    ├── Berksfile.lock
    ├── Dockerfile
    ├── chef
    │   ├── first-boot.json
    │   └── zero.rb
    └── dockerfiles
        └── docker
            └── chef
                └── cookbooks
                    ├── Berksfile.lock
                    ├── apache2
...
33 directories, 244 files

なんかフォルダ構成がおかしくなってる。多分カレントディレクトリがdockerfiles/dockerになったところで,何か構築してしまってるみたい。たしかにdockerfiles/docker/dockerfiles/dockerにはDockerfileはない模様。

…あと少しだったのに。。。 とりあえずpending...

noya
パソコンが使えるから今の仕事してますが、家ではパソコン使わない、エセエンジニア 最近エンジニア辞めて、戦うコンサルタントになりました。でも、やっぱりOSSと戦っています。 ※ 私の記事は個人の見解であり、所属している会社とは関連ありません
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away