Chefのリポジトリの準備

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

今回は、クックブックやレシピに取掛かる前に、リポジトリを整備します。

# Chef リポジトリの初期化

前回は。このディレクとが出来た処まででした。

```
chef@ChefWs:~/chef-repo$ ls -la
合計 20
drwxrwxr-x 2 chef chef 4096  9月 30 18:48 .
drwxr-xr-x 8 chef chef 4096  9月 30 18:22 ..
-rw-r--r-- 1 chef chef  133  9月 30 18:22 Gemfile
-rw-rw-r-- 1 chef chef 6402  9月 30 18:48 Gemfile.lock
```
次の様に、knife solo を使って 設定ファイルとディレクトリ構造を一息に作ってしまいます。

```
chef@ChefWs:~/chef-repo$ knife solo init .
WARNING: No knife configuration file found
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
Setting up Berkshelf...
```
コマンドの実行後のディレクトリは、以下の様になっています。

```
chef@ChefWs:~/chef-repo$ ls -la
合計 56
drwxrwxr-x 9 chef chef 4096  9月 30 20:03 .
drwxr-xr-x 8 chef chef 4096  9月 30 18:22 ..
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 .chef
-rw-rw-r-- 1 chef chef   12  9月 30 20:03 .gitignore
-rw-rw-r-- 1 chef chef   35  9月 30 20:03 Berksfile
-rw-r--r-- 1 chef chef  133  9月 30 18:22 Gemfile
-rw-rw-r-- 1 chef chef 6402  9月 30 18:48 Gemfile.lock
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 cookbooks
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 data_bags
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 environments
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 nodes
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 roles
drwxrwxr-x 2 chef chef 4096  9月 30 20:03 site-cookbooks
```


# GitHub への登録

この Chef のディレクトリを GitHub へ登録するまでの作業を進めていきます。

## GitHub へ登録するオブジェクトを決める
```
chef@ChefWs:~/chef-repo$ git init 
Initialized empty Git repository in /home/chef/chef-repo/.git/
```
このディレクトリ以下にあるものを全て追加します。

```
chef@ChefWs:~/chef-repo$ git add .
```

最初のコミットであることのメモを付けて、コミットを実行します。

```
chef@ChefWs:~/chef-repo$ git commit -m "first commit"
 Committer: chef <chef@ChefWs.softlayer.com>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 11 files changed, 286 insertions(+)
 create mode 100644 .chef/knife.rb
 create mode 100644 Berksfile
 create mode 100644 Gemfile
 create mode 100644 Gemfile.lock
 create mode 100644 README.md
 create mode 100644 cookbooks/.gitkeep
 create mode 100644 data_bags/.gitkeep
 create mode 100644 environments/.gitkeep
 create mode 100644 nodes/.gitkeep
 create mode 100644 roles/.gitkeep
 create mode 100644 site-cookbooks/.gitkeep
```

## GitHub にリポジトリを作成

ここでは、無料で誰でもユーザー登録していれば利用できる GitHub を例にしていますが、プライベートな git 環境でも要領は同じです。 画面右上のプラスマークをクリックして、リポジトリを登録する画面を開きます。　必要項目を登録して "Create repository" をクリックします。 

![スクリーンショット 2015-09-30 20.50.50.png](https://qiita-image-store.s3.amazonaws.com/0/42829/484b00d9-c1d9-158d-ae43-b6e54fbe21d7.png)

Quick setup の HTTP を選択して、画面に表示されている順番にコマンドをうち進めていきます。

![スクリーンショット 2015-09-30 20.54.36.png](https://qiita-image-store.s3.amazonaws.com/0/42829/930163b7-6f30-d6f3-47a1-b1ce02c54d5c.png)




## GitHubへアップロード

この場所から GitHub のリポジトリと関連づけます。

```
chef@ChefWs:~/chef-repo$ git remote add origin https://github.com/takara9/chef-repo.git
```
Gitにプッシュして、リモートのサーバーに、コピーを置きます。

```
chef@ChefWs:~/chef-repo$ git push -u origin master
Username for 'https://github.com': takara9
Password for 'https://takara9@github.com': 
Counting objects: 10, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (10/10), 2.60 KiB | 0 bytes/s, done.
Total 10 (delta 0), reused 0 (delta 0)
To https://github.com/takara9/chef-repo.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
```

# まとめ
リポジトリを初期化して、GitHub のリポジトリに登録が完了しました。これで Chef のレシピを作っていく準備が完了です。　時間は実際にレシピを作成してサーバーを構築していきます。