{"id":14208,"date":"2016-06-28T13:00:02","date_gmt":"2016-06-28T04:00:02","guid":{"rendered":"http:\/\/www.creationline.com\/?p=14208"},"modified":"2026-06-25T16:06:16","modified_gmt":"2026-06-25T07:06:16","slug":"habitat-%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%e3%82%92%e5%ae%9f%e6%96%bd%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b-getchef-habitat","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208","title":{"rendered":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat"},"content":{"rendered":"<p>\u672c\u7a3f\u306f <a href=\"\/lab\/14153\">Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat<\/a> \u306e <a href=\"https:\/\/www.habitat.sh\/tutorials\/\">\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb<\/a> \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.vagrantup.com\/\">Vagrant<\/a> + <a href=\"https:\/\/www.virtualbox.org\/\">VirtualBox<\/a> \u3067 <a href=\"https:\/\/atlas.hashicorp.com\/ubuntu\/boxes\/xenial64\/\">ubuntu\/xenial64<\/a> \u3092\u8d77\u52d5\u3057\u3001\u305d\u3061\u3089\u3067\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u884c\u3063\u3066\u307f\u307e\u3059\u3002<\/p>\n<h2>Habitat \u3092\u59cb\u3081\u3088\u3046<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-overview\/\">Getting started with Habitat<\/a> \u306b\u3042\u308b\u901a\u308a\u3001\u4e8b\u524d\u6e96\u5099\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/www.habitat.sh\/docs\/get-habitat\/\">Get Habitat<\/a> \u306e\u901a\u308a\u306b\u884c\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u306f <strong>For Linux<\/strong> \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304d\u307e\u3059\u3002ubuntu\/xenial64 (<a href=\"https:\/\/wiki.ubuntu.com\/XenialXerus\/ReleaseNotes\">Ubuntu 16.04 LTS<\/a>) \u306f 64\u30d3\u30c3\u30c8\u7248\u3067 Linux Kernel \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c 4.4 \u306a\u306e\u3067\u300164\u30d3\u30c3\u30c8\u7248\u306e Linux Kernel 2.6.32 \u4ee5\u4e0a\u3068\u3044\u3046\u6761\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"https:\/\/github.com\/\">GitHub<\/a> \u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6e96\u5099\u3057\u307e\u3059\u3002GitHub \u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u4f5c\u6210\u3057\u305f Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4ed6\u8005\u3068\u5171\u6709\u3059\u308b\u969b\u306b\u5fc5\u8981\u3068\u306a\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f Linux \u4e0a\u3067\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u884c\u3046\u306e\u3067\u3001<a href=\"https:\/\/docs.docker.com\/linux\/\">Docker Engine<\/a> \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u672c\u7a3f\u306e\u5185\u5bb9\u3092\u5b9f\u65bd\u3057\u305f\u969b\u306f\u3001Docker Engine 1.11.2 \u4ee5\u4e0a\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ curl -fsSL https:\/\/get.docker.com\/ | sh\n:\nubuntu:~$\n\nubuntu:~$ sudo usermod -aG docker ubuntu\nubuntu:~$\n\nubuntu:~$ groups\nubuntu adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd docker\nubuntu:~$\n\nubuntu:~$ docker version\nClient:\nVersion: 1.11.2\nAPI version: 1.23\nGo version: go1.5.4\nGit commit: b9f10c9\nBuilt: Wed Jun 1 22:00:43 2016\nOS\/Arch: linux\/amd64\n\nServer:\nVersion:      1.11.2\nAPI version:  1.23\nGo version:   go1.5.4\nGit commit:   b9f10c9\nBuilt:        Wed Jun  1 22:00:43 2016\nOS\/Arch:      linux\/amd64\nubuntu:~$<\/pre>\n<h2>\u30b3\u30f3\u30bb\u30d7\u30c8<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-basic-concepts\/\">Concepts<\/a> \u306b\u3066\u3001Habitat \u7279\u6709\u306e\u7528\u8a9e\u304c\u89e3\u8aac\u3055\u308c\u3044\u308b\u306e\u3067\u3001\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u9032\u3081\u308b\u524d\u306b\u3056\u3063\u3068\u78ba\u8a8d\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<h3>\u30d1\u30c3\u30b1\u30fc\u30b8(Package)<\/h3>\n<ul>\n<li>\u30dd\u30fc\u30bf\u30d6\u30eb<\/li>\n<li>\u6697\u53f7\u7f72\u540d\u3057\u305f tarball<\/li>\n<li>\u30a2\u30d7\u30ea\u3001\u30e9\u30f3\u30bf\u30a4\u30e0\u3001\u4f9d\u5b58\u95a2\u4fc2\u3001\u8a2d\u5b9a\u30c7\u30fc\u30bf\u3092\u540c\u68b1<\/li>\n<\/ul>\n<h3>\u30b9\u30fc\u30d1\u30fc\u30d0\u30a4\u30b6(Supervisor)<\/h3>\n<ul>\n<li>\u30d1\u30c3\u30b1\u30fc\u30b8\u4e2d\u306e\u30a2\u30d7\u30ea\u3084\u30b5\u30fc\u30d3\u30b9\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u30d7\u30ed\u30bb\u30b9\u30de\u30cd\u30fc\u30b8\u30e3<\/li>\n<li>\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u66f4\u65b0<\/li>\n<li>\u30c7\u30d7\u30ed\u30a4\u3057\u305f Habitat \u30b5\u30fc\u30d3\u30b9\u306e\u4ed6\u306e\u30b9\u30fc\u30d1\u30fc\u30d0\u30a4\u30b6\u3068\u306e\u901a\u4fe1\u306b\u53c2\u52a0<\/li>\n<li>\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3084\u3001\u30b5\u30fc\u30d3\u30b9\u306b\u95a2\u3059\u308b\u30b9\u30c6\u30fc\u30bf\u30b9\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u63d0\u4f9b<\/li>\n<li>\u4ed6\u306e\u30a2\u30d7\u30ea\u304b\u3089\u306e\u554f\u3044\u5408\u308f\u305b\u306b\u5fdc\u7b54<\/li>\n<\/ul>\n<h3>\u30b5\u30fc\u30d3\u30b9(Habitat service)<\/h3>\n<ul>\n<li>\u30b9\u30fc\u30d1\u30fc\u30d0\u30a4\u30b6\u3068\u5b9f\u884c\u3057\u3066\u3044\u308b\u30a2\u30d7\u30ea<\/li>\n<li>\u30d1\u30c3\u30b1\u30fc\u30b8\u4e2d\u3067\u5b9f\u884c\u3057\u3066\u3044\u308b\u30b5\u30fc\u30d3\u30b9<\/li>\n<\/ul>\n<h3>\u30d7\u30e9\u30f3(Plan)<\/h3>\n<ul>\n<li>\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u4f55\u3092\u542b\u3080\u304b\u3001\u3069\u306e\u3088\u3046\u306b\u30d3\u30eb\u30c9\u3059\u308b\u304b\u3001\u3069\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u304b\u3092\u5b9a\u7fa9\u3057\u305f\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8<\/li>\n<\/ul>\n<h3>\u30c7\u30dd(Depot)<\/h3>\n<ul>\n<li>\u30a2\u30d7\u30ea\u3068\u4f9d\u5b58\u95a2\u4fc2\u306b\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u542b\u3080\u30ec\u30dd\u30b8\u30c8\u30ea<\/li>\n<li>\u30ed\u30fc\u30ab\u30eb\u30c7\u30dd\u3092\u4f5c\u308b\u306e\u3068\u540c\u3058\u3088\u3046\u306b\u3001\u30d1\u30d6\u30ea\u30c3\u30af\u306a Habitat \u30c7\u30dd\u306b\u63a5\u7d9a\u3067\u304d\u308b<\/li>\n<\/ul>\n<h2>Habitat \u74b0\u5883\u306e\u4f5c\u6210<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-setup-environment\/\">Set up your environment<\/a> \u306b\u5f93\u3044\u3001Habitat \u3092\u5b9f\u884c\u3059\u308b\u74b0\u5883\u3092\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u5148\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304a\u3044\u305f Habitat for Linux \u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u5c55\u958b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ tar xvfz hab-0.7.0-20160614230104-x86_64-linux.tar.gz\nhab-0.7.0-20160614230104-x86_64-linux\/\nhab-0.7.0-20160614230104-x86_64-linux\/hab\nubuntu:~$<\/pre>\n<p>1\u3064\u3060\u3051\u5b9f\u884c\u30d0\u30a4\u30ca\u30ea\u304c\u5165\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u304c Habitat \u306e CLI \u3067\u3042\u308b <strong>hab<\/strong> \u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~\/hab-0.7.0-20160614230104-x86_64-linux$ .\/hab\nhab 0.7.0\/20160614230104\n\nAuthors: The Habitat Maintainers &lt;humans@habitat.sh&gt;\n\n\"A Habitat is the natural environment for your services\" - Alan Turing\n\nUSAGE:\nhab [FLAGS] [SUBCOMMAND]\n\nFLAGS:\n-h, --help Prints help information\n-V, --version Prints version information\n\nSUBCOMMANDS:\ncli Commands relating to Habitat runtime config\nconfig Commands relating to Habitat runtime config\nfile Commands relating to Habitat files\nhelp Prints this message or the help of the given subcommand(s)\norigin Commands relating to Habitat origin keys\npkg Commands relating to Habitat packages\nring Commands relating to Habitat rings\nservice Commands relating to Habitat services\nstudio Commands relating to Habitat Studios\nsup Commands relating to the Habitat Supervisor\nuser Commands relating to Habitat users\n\nALIASES:\napply Alias for: 'config apply'\ninstall Alias for: 'pkg install'\nsetup Alias for: 'cli setup'\nstart Alias for: 'sup start'\n\nubuntu:~\/hab-0.7.0-20160614230104-x86_64-linux$<\/pre>\n<p>\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b <strong>bin<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u305d\u3061\u3089\u306b <strong>hab<\/strong> \u30b3\u30de\u30f3\u30c9\u3092\u79fb\u3057\u3001\u30d1\u30b9\u3092\u901a\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ mkdir bin\nubuntu:~$ mv hab-0.7.0-20160614230104-x86_64-linux\/hab bin\/\nubuntu:~$\nubuntu:~$ export PATH=$PATH:~\/bin\nubuntu:~$<\/pre>\n<p>\u4ee5\u964d\u3001<strong>sudo<\/strong> \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3063\u3066 <strong>hab<\/strong> \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3044\u304f\u306e\u3067\u3059\u304c\u3001sudo \u30b3\u30de\u30f3\u30c9\u306e\u8a2d\u5b9a\u306b\u3088\u3063\u3066\u306f PATH \u74b0\u5883\u5909\u6570\u304c\u5f15\u304d\u7d99\u304c\u308c\u306a\u3044\u306e\u3067\u30d1\u30b9\u3092\u901a\u3057\u305f\u610f\u5473\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002\u672c\u7a3f\u3067\u7528\u3044\u305f ubuntu\/xenial64 \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\u3067\u306f PATH \u74b0\u5883\u5909\u6570\u304c\u5f15\u304d\u7d99\u304c\u308c\u306a\u3044\u306e\u3067\u3001\u6bce\u56de\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3067\u306f\u3001<strong>hab setup<\/strong> \u3092 root \u6a29\u9650\u3067\u5b9f\u884c\u3057\u3001Habitat \u306e\u74b0\u5883\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ sudo ~\/bin\/hab setup\n\nHabitat CLI Setup\n=================\n\nWelcome to hab setup. Let's get started.\n\nSet up a default origin\n\nEvery package in Habitat belongs to an origin, which indicates the\nperson or organization responsible for maintaining that package. Each\norigin also has a key used to cryptographically sign packages in that\norigin.\n\nSelecting a default origin tells package building operations such as\n'hab pkg build' what key should be used to sign the packages produced.\nIf you do not set a default origin now, you will have to tell package\nbuilding commands each time what origin to use.\n\nFor more information on origins and how they are used in building\npackages, please consult the docs at\nhttps:\/\/www.habitat.sh\/docs\/build-packages-overview\/\n\nSet up a default origin? [Yes\/no\/quit]<\/pre>\n<p>\u307e\u305a <strong>origin<\/strong> \u3068\u547c\u3070\u308c\u308b\u3082\u306e\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u3053\u308c\u306f Habitat \u3067\u4f5c\u6210\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6240\u5c5e\u5148(\u500b\u4eba\u307e\u305f\u306f\u7d44\u7e54)\u3067\u3042\u308a\u3001\u6697\u53f7\u7f72\u540d\u3092\u65bd\u3059\u9375\u3092\u6240\u6301\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306f hab \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u969b\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5229\u7528\u3059\u308b origin \u3092\u65b0\u898f\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Enter the name of your origin. If you plan to publish your packages\npublicly, we recommend that you select one that is not already in use on\nthe Habitat build service found at https:\/\/app.habitat.sh\/.\n\nDefault origin name: [default: ubuntu] cl-lab-k<\/pre>\n<p>origin \u306e\u540d\u524d\u3092\u3053\u3053\u3067\u306f <strong>cl-lab-k<\/strong> \u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Create origin key pair\n\nIt doesn't look like you have a signing key for the origin `cl-lab-k'.\nWithout it, you won't be able to build new packages successfully.\n\nYou can either create a new signing key now, or, if you are building\npackages for an origin that already exists, ask the owner to give you\nthe signing key.\n\nFor more information on the use of origin keys, please consult the\ndocumentation at https:\/\/www.habitat.sh\/docs\/concepts-keys\/#origin-keys\n\nCreate an origin key for `cl-lab-k'? [Yes\/no\/quit]\n\u00bb Generating origin key for cl-lab-k\n\u2605 Generated origin key pair cl-lab-k-20160617063426.<\/pre>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u6697\u53f7\u7f72\u540d\u3059\u308b\u305f\u3081\u306e\u9375\u3092\u65b0\u898f\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">GitHub Access Token\n\nWhile you can build and run Habitat packages without sharing them on the\npublic depot, doing so allows you to collaborate with the Habitat\ncommunity. In addition, it is how you can perform continuous deployment\nwith Habitat.\n\nThe depot uses GitHub authentication with an access token\n(https:\/\/help.github.com\/articles\/creating-an-access-token-for-command-line-use\/).\n\nIf you would like to share your packages on the depot, please enter your\nGitHub access token. Otherwise, just enter No.\n\nFor more information on sharing packages on the depot, please read the\ndocumentation at https:\/\/www.habitat.sh\/docs\/share-packages-overview\/\n\nSet up a default GitHub access token? [Yes\/no\/quit]<\/pre>\n<p>GitHub \u3068\u306e\u9023\u643a\u3092\u884c\u3044\u307e\u3059\u3002\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u5b9f\u65bd\u3057\u307e\u305b\u3093\u304c\u3001Habitat \u3067\u4f5c\u6210\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4ed6\u8005\u3068\u5171\u6709\u3059\u308b\u969b\u306b\u5229\u7528\u3057\u307e\u3059\u3002\u4ee5\u5f8c\u306e\u3053\u3068\u3092\u8003\u3048\u3066\u3001\u3053\u3053\u3067\u306f\u9023\u643a\u3059\u308b\u3053\u3068\u3068\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Enter your GitHub access token.\n\nGitHub access token:  ****************************************<\/pre>\n<p><a href=\"https:\/\/help.github.com\/articles\/creating-an-access-token-for-command-line-use\/\">Creating an access token for command-line use<\/a> \u3092\u53c2\u8003\u306b\u3001GitHub \u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\u3057\u3001hab \u30b3\u30de\u30f3\u30c9\u306b\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Analytics\n\nThe `hab` command-line tool will optionally send anonymous usage data to\nHabitat's Google Analytics account. This is a strictly opt-in activity\nand no tracking will occur unless you respond affirmatively to the\nquestion below.\n\nWe collect this data to help improve Habitat's user experience. For\nexample, we would like to know the category of tasks users are\nperforming, and which ones they are having trouble with (e.g. mistyping\ncommand line arguments).\n\nTo see what kinds of data are sent and how they are anonymized, please\nread more about our analytics here:\nhttps:\/\/www.habitat.sh\/docs\/about-analytics\/\n\nEnable analytics? [Yes\/no\/quit]\n\u00bb Opting in to analytics\n&#x2611; Creating \/home\/ubuntu\/.hab\/cache\/analytics\/OPTED_IN\n\u2605 Analytics opted in, thank you!<\/pre>\n<p>hab \u30b3\u30de\u30f3\u30c9\u306b\u306f Google Analytics \u304c\u5185\u8535\u3055\u308c\u3066\u3044\u3066\u3001\u533f\u540d\u306e\u5229\u7528\u7d71\u8a08\u3092\u53ce\u96c6\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u4eca\u5f8c\u306e Habitat \u306e\u958b\u767a\u306b\u5bc4\u4e0e\u3059\u308b\u3053\u3068\u3092\u671f\u5f85\u3057\u3066\u6709\u52b9\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CLI Setup Complete\n\nThat's all for now. Thanks for using Habitat!\n\nubuntu:~$<\/pre>\n<p>\u4ee5\u4e0a\u3067\u8a2d\u5b9a\u306f\u5b8c\u4e86\u3067\u3059\u3002<\/p>\n<h2>\u30bd\u30fc\u30b9\u306e\u78ba\u8a8d<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-review-source-files\/\">Review the source files<\/a> \u306f\u4eca\u56de\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u5229\u7528\u3059\u308b Node.js \u30a2\u30d7\u30ea\u306e\u30bd\u30fc\u30b9\u3067\u3059\u3002\u5f8c\u3005\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u8a2d\u5b9a\u3092\u884c\u3046\u306e\u3067\u3053\u308c\u3089\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304f\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<h2>\u30d7\u30e9\u30f3\u306e\u4f5c\u6210<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-create-plan\/\">Create your first plan<\/a> \u306b\u5f93\u3044\u3001\u524d\u8ff0\u306e Node.js \u30a2\u30d7\u30ea\u306e Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u542b\u307e\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u3084\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a2d\u8a08\u56f3\u3068\u3082\u8a00\u3048\u308b\u30d7\u30e9\u30f3\u3092\u914d\u7f6e\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306f <strong>plans<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306b <strong>mytutorialapp<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3001\u305d\u3061\u3089\u3067\u4f5c\u696d\u3057\u307e\u3059\u3002\u3053\u306e <strong>mytutorialapp<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u306f Docker \u3068\u540c\u3058\u304f\u300c\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 (context)\u300d\u3068\u547c\u3073\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ mkdir -p ~\/plans\/mytutorialapp\nubuntu:~$ cd ~\/plans\/mytutorialapp\/\nubuntu:~\/plans\/mytutorialapp$<\/pre>\n<p><strong>mytutorialapp<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u30d7\u30e9\u30f3\u3067\u3042\u308b <strong>plan.sh<\/strong> \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~\/plans\/mytutorialapp$ vi plan.sh\npkg_origin=cl-lab-k\npkg_name=mytutorialapp\npkg_version=0.1.0\npkg_maintainer=\"HIGUCHI Daisuke &lt;d-higuchi@creationline.com&gt;\"\npkg_license=()\npkg_source=https:\/\/s3-us-west-2.amazonaws.com\/${pkg_name}\/${pkg_name}-${pkg_version}.tar.gz\npkg_shasum=b54f8ada292b0249245385996221751f571e170162e0d464a26b958478cc9bfa\npkg_deps=(core\/node)\npkg_expose=(8080)\n\ndo_build() {\n# The mytutorialapp source code is unpacked into a directory,\n# mytutorialapp-0.1.0, at the root of $HAB_CACHE_SRC_PATH. If you were downloading\n# an archive that didn't match your package name and version, you would have to\n# copy the files into $HAB_CACHE_SRC_PATH.\n\n# This installs both npm as well as the nconf module we listed as a\n# dependency in package.json.\nnpm install\n}\n\ndo_install() {\n# Our source files were copied over to the HAB_CACHE_SRC_PATH in do_build(),\n# so now they need to be copied into the root directory of our package through\n# the pkg_prefix variable. This is so that we have the source files available\n# in the package.\ncp package.json ${pkg_prefix}\ncp server.js ${pkg_prefix}\n\n  # Copy over the nconf module to the package that we installed in do_build().\nmkdir -p ${pkg_prefix}\/node_modules\/\ncp -vr node_modules\/* ${pkg_prefix}\/node_modules\/\n}\nubuntu:~\/plans\/mytutorialapp$<\/pre>\n<h3>pkg_origin, pkg_name, pkg_version<\/h3>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8b58\u5225\u60c5\u5831\u3067\u3059\u3002<\/p>\n<h3>pkg_maintainer, pkg_license<\/h3>\n<p>\u30e1\u30f3\u30c6\u30ca\u306e\u9023\u7d61\u5148\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u3059\u3002<\/p>\n<h3>pkg_source, pkg_shasum<\/h3>\n<p>\u30bd\u30fc\u30b9\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u53d6\u5f97\u5148\u3068\u3001\u30bd\u30fc\u30b9\u30a2\u30fc\u30ab\u30a4\u30d6\u304c\u6b63\u3057\u3044\u3053\u3068\u3092\u691c\u8a3c\u3059\u308b\u305f\u3081\u306e SHA256 \u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3067\u3059\u3002\u4e00\u81f4\u3057\u306a\u3044\u5834\u5408\u306f\u30d3\u30eb\u30c9\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>pkg_deps, pkg_build_deps<\/h3>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a2\u30d7\u30ea\u306e\u5b9f\u884c\u6642\u3068\u3001\u30d3\u30eb\u30c9\u6642\u306e\u305d\u308c\u305e\u308c\u306e\u4f9d\u5b58\u95a2\u4fc2\u3067\u3059\u3002<\/p>\n<p>\u89aa\u5b50\u95a2\u4fc2\u306b\u3042\u308b\u4f9d\u5b58\u95a2\u4fc2\u3092\u3059\u3079\u3066\u5217\u6319\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u307e\u305f\u3001\u5b9f\u884c\u6642\u306e\u4f9d\u5b58\u95a2\u4fc2\u306f\u30d3\u30eb\u30c9\u6642\u306b\u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b\u306e\u3067\u3001pkg_build_deps \u306f\u7701\u7565\u53ef\u80fd\u306a\u5834\u5408\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n<h3>pkg_bin_dirs, pkg_include_dirs, pkg_lib_dirs<\/h3>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30d3\u30eb\u30c9\u3057\u3066\u914d\u7f6e\u3059\u308b\u30d0\u30a4\u30ca\u30ea\u3001\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5404\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5b9a\u7fa9\u3067\u3059\u3002<\/p>\n<h3>pkg_expose<\/h3>\n<p>\u6307\u5b9a\u306e\u30dd\u30fc\u30c8\u3092\u516c\u958b\u3057\u307e\u3059\u3002<\/p>\n<h3>do_build, do_install<\/h3>\n<p>\u30d3\u30eb\u30c9\u304a\u3088\u3073\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6642\u306e\u65e2\u5b58\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u4e0a\u66f8\u304d\u3057\u307e\u3059\u3002<\/p>\n<p>\u3053\u308c\u3067\u30d7\u30e9\u30f3\u306e\u4f5c\u6210\u304c\u3067\u304d\u305f\u306e\u3067\u3001\u3053\u308c\u3092\u3082\u3068\u306b\u3057\u3066 Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f5c\u6210\u3092\u884c\u3044\u307e\u3059\u3002\u30af\u30ea\u30fc\u30f3\u306a\u74b0\u5883\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f5c\u6210\u3092\u884c\u3046\u305f\u3081\u3001\u300c\u30b9\u30bf\u30b8\u30aa (<strong>studio<\/strong>)\u300d\u3092\u8d77\u52d5\u3057\u307e\u3059\u3002root \u6a29\u9650\u3067 <strong>hab studio enter<\/strong> \u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u2235 Package for core\/hab-studio not found, installing\n\u00bb Installing core\/hab-studio\n\u2193 Downloading core\/hab-studio\/0.7.0\/20160614232531\n2.72 MB \/ 2.72 MB | [================================] 100.00 % 16.37 MB\/s  \u2193 Downloading core-20160612031944 public origin key\n75 B \/ 75 B | [=======================================] 100.00 % 3.29 MB\/s  &#x2611; Cached core-20160612031944 public origin key\n\u2713 Installed core\/hab-studio\/0.7.0\/20160614232531\n\u2605 Install of core\/hab-studio complete with 1 packages installed.\nhab-studio: Creating Studio at \/hab\/studios\/home--ubuntu--plans--mytutorialapp (default)\n\u00bb Installing core\/hab-backline\n\u2193 Downloading core\/acl\/2.2.52\/20160612075215\n181.20 KB \/ 181.20 KB - [=============================] 100.00 % 2.83 MB\/s  \u2193 Downloading core-20160612031944 public origin key\n75 B \/ 75 B | [=======================================] 100.00 % 4.01 MB\/s  &#x2611; Cached core-20160612031944 public origin key\n\u2713 Installed core\/acl\/2.2.52\/20160612075215\n\n(\u4e2d\u7565)\n\u2193 Downloading core\/hab-backline\/0.7.0\/20160614232423\n1.93 KB \/ 1.93 KB \/ [================================] 100.00 % 27.07 MB\/s  \u2713 Installed core\/hab-backline\/0.7.0\/20160614232423\n\u2605 Install of core\/hab-backline complete with 39 packages installed.\n\u00bb Symlinking hab from core\/hab into \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/hab\/bin\n\u2605 Binary hab from core\/hab\/0.7.0\/20160614230104 symlinked to \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/hab\/bin\/hab\n\u00bb Symlinking bash from core\/bash into \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/bin\n\u2605 Binary bash from core\/bash\/4.3.42\/20160612075613 symlinked to \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/bin\/bash\n\u00bb Symlinking sh from core\/bash into \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/bin\n\u2605 Binary sh from core\/bash\/4.3.42\/20160612075613 symlinked to \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/bin\/sh\nhab-studio: Entering Studio at \/hab\/studios\/home--ubuntu--plans--mytutorialapp (default)\nhab-studio: Exported: HAB_ORIGIN=cl-lab-k<\/pre>\n<p>\u30b9\u30bf\u30b8\u30aa\u306b\u5fc5\u8981\u306a Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30af\u30ea\u30fc\u30f3\u306a\u74b0\u5883\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4ed6\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u30d7\u30ed\u30bb\u30b9\u3092\u898b\u3066\u307f\u308b\u3068\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ ps axwwwf\n:\n1412 pts\/0    Ss     0:00  |       \\_ -bash\n1607 pts\/0    S      0:00  |           \\_ sudo \/home\/ubuntu\/bin\/hab studio enter\n1608 pts\/0    S+     0:00  |               \\_ \/hab\/pkgs\/core\/bash\/4.3.42\/20160612075613\/bin\/bash --login +h\n:\nubuntu:~$<\/pre>\n<p>\u30de\u30a6\u30f3\u30c8\u72b6\u6cc1\u3092\u898b\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ mount | grep hab\nudev on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/dev type devtmpfs (rw,nosuid,relatime,size=4068656k,nr_inodes=1017164,mode=755)\ndevpts on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/dev\/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)\nproc on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/proc type proc (rw,relatime)\nsysfs on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/sys type sysfs (rw,relatime)\ntmpfs on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/run type tmpfs (rw,relatime)\ntmpfs on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/var\/run\/docker.sock type tmpfs (rw,nosuid,noexec,relatime,size=817548k,mode=755)\n\/dev\/sda1 on \/hab\/studios\/home--ubuntu--plans--mytutorialapp\/src type ext4 (rw,relatime,data=ordered)\nubuntu:~$<\/pre>\n<p>\u30b9\u30bf\u30b8\u30aa\u5185\u3067 <strong>build<\/strong> \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u30d7\u30e9\u30f3\u306b\u5f93\u3063\u3066 Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f5c\u6210\u304c\u884c\u308f\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[1][default:\/src:0]# build\n: Loading \/src\/plan.sh\nmytutorialapp: Plan loaded\nmytutorialapp: hab-plan-build setup\nmytutorialapp: Using HAB_BIN=\/hab\/pkgs\/core\/hab\/0.7.0\/20160614230104\/bin\/hab for installs, signing, and hashing\nmytutorialapp: Resolving dependencies\n\u00bb Installing core\/node\n\u2192 Using core\/gcc-libs\/5.2.0\/20160612075020\n\u2192 Using core\/glibc\/2.22\/20160612063629\n\u2192 Using core\/linux-headers\/4.3\/20160612063537\n\u2193 Downloading core\/node\/4.2.6\/20160612143531\n6.44 MB \/ 6.44 MB \\ [================================] 100.00 % 28.91 MB\/s  \u2713 Installed core\/node\/4.2.6\/20160612143531\n\u2605 Install of core\/node complete with 4 packages installed.\nmytutorialapp: Resolved dependency 'core\/node' to \/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\nmytutorialapp: Setting PATH=\/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\/bin:\/hab\/pkgs\/core\/hab-plan-build\/0.7.0\/20160614232259\/bin:\/hab\/pkgs\/core\/bash\/4.3.42\/20160612075613\/bin:\/hab\/pkgs\/core\/binutils\/2.25.1\/20160612064534\/bin:\/hab\/pkgs\/core\/bzip2\/1.0.6\/20160612075040\/bin:\/hab\/pkgs\/core\/coreutils\/8.24\/20160612075329\/bin:\/hab\/pkgs\/core\/file\/5.24\/20160612064523\/bin:\/hab\/pkgs\/core\/findutils\/4.4.2\/20160612080341\/bin:\/hab\/pkgs\/core\/gawk\/4.1.3\/20160612075739\/bin:\/hab\/pkgs\/core\/grep\/2.22\/20160612075540\/bin:\/hab\/pkgs\/core\/gzip\/1.6\/20160612080637\/bin:\/hab\/pkgs\/core\/hab\/0.7.0\/20160614230104\/bin:\/hab\/pkgs\/core\/sed\/4.2.2\/20160612075228\/bin:\/hab\/pkgs\/core\/tar\/1.28\/20160612075701\/bin:\/hab\/pkgs\/core\/unzip\/6.0\/20160612081414\/bin:\/hab\/pkgs\/core\/wget\/1.16.3\/20160612081342\/bin:\/hab\/pkgs\/core\/xz\/5.2.2\/20160612080402\/bin:\/hab\/pkgs\/core\/acl\/2.2.52\/20160612075215\/bin:\/hab\/pkgs\/core\/attr\/2.4.47\/20160612075207\/bin:\/hab\/pkgs\/core\/glibc\/2.22\/20160612063629\/bin:\/hab\/pkgs\/core\/less\/481\/20160612080021\/bin:\/hab\/pkgs\/core\/libcap\/2.24\/20160612075226\/bin:\/hab\/pkgs\/core\/libidn\/1.32\/20160612081104\/bin:\/hab\/pkgs\/core\/ncurses\/6.0\/20160612075116\/bin:\/hab\/pkgs\/core\/openssl\/1.0.2h\/20160612081127\/bin:\/hab\/pkgs\/core\/pcre\/8.38\/20160612075520\/bin\nmkdir: created directory '\/hab\/cache\/src'\nmytutorialapp: Downloading 'https:\/\/s3-us-west-2.amazonaws.com\/mytutorialapp\/mytutorialapp-0.1.0.tar.gz' to 'mytutorialapp-0.1.0.tar.gz'\n--2016-06-17 08:56:17--  https:\/\/s3-us-west-2.amazonaws.com\/mytutorialapp\/mytutorialapp-0.1.0.tar.gz\nResolving s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)... 54.231.184.132\nConnecting to s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)|54.231.184.132|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 1041 (1.0K) [application\/x-gzip]\nSaving to: 'mytutorialapp-0.1.0.tar.gz'\nmytutorialapp-0.1.0 100%[=====================&gt;] 1.02K --.-KB\/s in 0s\n\n2016-06-17 08:56:18 (72.6 MB\/s) - 'mytutorialapp-0.1.0.tar.gz' saved [1041\/1041]\n   mytutorialapp: Downloaded 'mytutorialapp-0.1.0.tar.gz'\nmytutorialapp: Verifying mytutorialapp-0.1.0.tar.gz\nmytutorialapp: Checksum verified for mytutorialapp-0.1.0.tar.gz\nmytutorialapp: Clean the cache\nmytutorialapp: Unpacking mytutorialapp-0.1.0.tar.gz\nmytutorialapp: Setting build environment\nmytutorialapp: Setting PREFIX=\/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\nmytutorialapp: Setting LD_RUN_PATH=\/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\/lib\nmytutorialapp: Setting CFLAGS=-I\/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\/include\nmytutorialapp: Setting LDFLAGS=-L\/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\/lib\nmytutorialapp: Preparing to build\nmytutorialapp: Building\nnpm WARN package.json mytutorialapp@0.1.0 No repository field.\nnpm WARN package.json mytutorialapp@0.1.0 No README data\nnconf@0.8.4 node_modules\/nconf\n\u251c\u2500\u2500 ini@1.3.4\n\u251c\u2500\u2500 secure-keys@1.0.0\n\u251c\u2500\u2500 async@1.5.2\n\u2514\u2500\u2500 yargs@3.32.0 (decamelize@1.2.0, camelcase@2.1.1, y18n@3.2.1, window-size@0.1.4, os-locale@1.4.0, cliui@3.2.0, string-width@1.0.1)\nmytutorialapp: Installing\n'node_modules\/nconf' -&gt; '\/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/node_modules\/nconf'\n'node_modules\/nconf\/.npmignore' -&gt; '\/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/node_modules\/nconf\/.npmignore'\n\n(\u4e2d\u7565)\n'node_modules\/nconf\/node_modules\/ini\/ini.js' -&gt; '\/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/node_modules\/nconf\/node_modules\/ini\/ini.js'\n'node_modules\/nconf\/node_modules\/ini\/package.json' -&gt; '\/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/node_modules\/nconf\/node_modules\/ini\/package.json'\nmytutorialapp: Writing configuration\nmytutorialapp: Writing service management scripts\nmytutorialapp: Stripping unneeded symbols from binaries and libraries\nmytutorialapp: Creating manifest\nmytutorialapp: Building package metadata\nmytutorialapp: Generating blake2b hashes of all files in the package\nmytutorialapp: Generating signed metadata FILES\n\u00bb Signing mytutorialapp_blake2bsums\n\u261b Signing mytutorialapp_blake2bsums with cl-lab-k-20160617085430 to create \/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/FILES\n\u2605 Signed artifact \/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/FILES.\nmytutorialapp: Generating package artifact\n\/hab\/pkgs\/core\/tar\/1.28\/20160612075701\/bin\/tar: Removing leading `\/' from member names\n\/hab\/cache\/artifacts\/.cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.tar (1\/1)\n100 %       121.2 KiB \/ 900.0 KiB = 0.135\n\u00bb Signing \/hab\/cache\/artifacts\/.cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.tar.xz\n\u261b Signing \/hab\/cache\/artifacts\/.cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.tar.xz with cl-lab-k-20160617085430 to create \/hab\/cache\/artifacts\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart\n\u2605 Signed artifact \/hab\/cache\/artifacts\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart.\nmkdir: created directory '\/src\/results'\n'\/hab\/cache\/artifacts\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart' -&gt; '\/src\/results\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart'\nmytutorialapp: hab-plan-build cleanup\nmytutorialapp:\nmytutorialapp: Source Cache: \/hab\/cache\/src\/mytutorialapp-0.1.0\nmytutorialapp: Installed Path: \/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\nmytutorialapp: Artifact: \/src\/results\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart\nmytutorialapp: Build Report: \/src\/results\/last_build.env\nmytutorialapp: SHA256 Checksum: 4b21b5301bca3f00d901bfa6916abecd6f51229c348dfcc3399e75c715248c45\nmytutorialapp: Blake2b Checksum: 9859c9823f59a909047c1652896425ad88002dbfb803e853a4d32e59690d5e2e\nmytutorialapp:\nmytutorialapp: I love it when a plan.sh comes together.\nmytutorialapp:\nmytutorialapp: Build time: 0m8s\n[2][default:\/src:0]#<\/pre>\n<p>\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306f <strong>\/hab\/pkgs<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306b\u3001\u3055\u3089\u306b origin\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u30d0\u30fc\u30b8\u30e7\u30f3\u3001\u30ea\u30ea\u30fc\u30b9\u756a\u53f7\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[6][default:\/src:0]# ls \/hab\/pkgs\/cl-lab-k\/mytutorialapp\/0.1.0\/20160617085614\/\nDEPS     FILES  MANIFEST  TDEPS  node_modules  server.js\nEXPOSES  IDENT  TARGET    etc    package.json\n[7][default:\/src:0]#<\/pre>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u30d5\u30a1\u30a4\u30eb\u306f <strong>\/hab\/results<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[7][default:\/src:0]# ls \/src\/results\/\n\/src\/results\/cl-lab-k-mytutorialapp-0.1.0-20160617085614-x86_64-linux.hart\n[8][default:\/src:0]#<\/pre>\n<h2>\u30d5\u30c3\u30af\u306e\u8ffd\u52a0<\/h2>\n<p>\u5148\u306e Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u30b5\u30fc\u30d3\u30b9\u3092\u4f55\u3082\u8d77\u52d5\u3057\u306a\u3044\u305f\u3081\u3001\u4f55\u3082\u8d77\u3053\u308a\u307e\u305b\u3093\u3002\u305d\u3053\u3067 <a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-add-hooks\/\">Add hooks to your plan<\/a> \u306b\u5f93\u3044\u3001\u30d5\u30c3\u30af\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/p>\n<p>\u30d5\u30c3\u30af\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u683c\u7d0d\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea <strong>\/src\/hooks<\/strong> \u3092\u4f5c\u6210\u3057\u3001\u305d\u3061\u3089\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[8][default:\/src:0]# cd \/src\/\n[9][default:\/src:0]# mkdir hooks\n[10][default:\/src:0]# cd hooks\/\n[11][default:\/src\/hooks:0]#<\/pre>\n<p><strong>init<\/strong> \u30d5\u30a1\u30a4\u30eb\u306b\u306f\u521d\u671f\u5316\u6642\u306e\u6319\u52d5\u3092\u5b9a\u7fa9\u3057\u3001<strong>run<\/strong> \u30d5\u30a1\u30a4\u30eb\u306b\u306f\u30b5\u30fc\u30d3\u30b9\u307e\u305f\u306f\u30a2\u30d7\u30ea\u8d77\u52d5\u65b9\u6cd5\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[12][default:\/src\/hooks:0]# vi init\n#!\/bin\/sh\n#\nln -sf {{pkg.path}}\/package.json {{pkg.svc_path}}\nln -sf {{pkg.path}}\/server.js {{pkg.svc_path}}\nln -sf {{pkg.path}}\/node_modules {{pkg.svc_path}}\n[13][default:\/src\/hooks:0]#<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[13][default:\/src\/hooks:0]# vi run\n#!\/bin\/sh\n#\ncd {{pkg.svc_path}}\nnpm start\n[14][default:\/src\/hooks:0]#<\/pre>\n<h2>\u8a2d\u5b9a\u306e\u8ffd\u52a0<\/h2>\n<p>\u3053\u3053\u3067\u306f <a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-configure-plan\/\">Add configuration to your plan<\/a> \u306b\u5f93\u3063\u3066\u3001\u8a2d\u5b9a\u3092\u52d5\u7684\u306b\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u8abf\u6574\u3057\u307e\u3059\u3002<\/p>\n<p>\u307e\u305a\u3001<strong>\/src\/config<\/strong> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3001\u3082\u3068\u3082\u3068\u306e\u9759\u7684\u306a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[14][default:\/src\/hooks:0]# cd \/src\/\n[15][default:\/src:0]# mkdir config\n[16][default:\/src:0]# touch config\/config.json\n[17][default:\/src:0]#<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"javascript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[17][default:\/src:0]# vi config\/config.json\n{\n\"message\": \"Hello, World!\",\n\"port\": \"8080\"\n}\n[18][default:\/src:0]#<\/pre>\n<p>\u56fa\u5b9a\u5024\u3067\u3042\u308b <strong>\"Hello, World!\"<\/strong> \u3068 <strong>\"8080\"<\/strong> \u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5909\u6570\u306b\u66f8\u304d\u63db\u3048\u307e\u3059\u3002\u30e6\u30fc\u30b6\u5b9a\u7fa9\u5024\u306f <strong>cfg.<\/strong> \u304b\u3089\u59cb\u307e\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"javascript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[18][default:\/src:0]# vi config\/config.json\n{\n\"message\": \"{{cfg.message}}\",\n\"port\": \"{{cfg.port}}\"\n}\n[19][default:\/src:0]#<\/pre>\n<p>\u30e6\u30fc\u30b6\u5b9a\u7fa9\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5909\u6570\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306f <a href=\"https:\/\/github.com\/toml-lang\/toml\/blob\/v0.4.0\/versions\/en\/toml-v0.4.0.md\">TOML<\/a> (<a href=\"https:\/\/github.com\/toml-lang\/toml\/blob\/6b70154c03a3191b182feec3e8ddcedeaaf2f277\/versions\/ja\/toml-v0.4.0.md\">\u548c\u8a33<\/a>) \u3068\u3044\u3046\u30b7\u30f3\u30d7\u30eb\u306a\u8a00\u8a9e\u306b\u3088\u3063\u3066\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[19][default:\/src:0]# touch default.toml\n[20][default:\/src:0]#<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"ini\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[20][default:\/src:0]# vi default.toml\n# Message of the Day\nmessage = \"Hello, World!\"\n\n# The port number that is listening for requests.\nport = 8080\n[21][default:\/src:0]#<\/pre>\n<h2>\u30b5\u30fc\u30d3\u30b9\u3092\u5b9f\u884c<\/h2>\n<p><a href=\"https:\/\/www.habitat.sh\/tutorials\/getting-started-process-build\/\">Run your service<\/a> \u306b\u5f93\u3044\u3001\u6539\u3081\u3066 Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d3\u30eb\u30c9\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[1][default:\/src:0]# build\n:\n:\n:\n[2][default:\/src:0]#<\/pre>\n<p><strong>hab pkg export docker<\/strong> \u30b3\u30de\u30f3\u30c9\u3092\u7528\u3044\u308b\u3068\u3001\u6307\u5b9a\u306e Habitat \u30d1\u30c3\u30b1\u30fc\u30b8\u3092 Docker \u30a4\u30e1\u30fc\u30b8\u3068\u3057\u3066\u66f8\u304d\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6307\u5b9a\u65b9\u6cd5\u306f origin\/packagename \u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[2][default:\/src:0]# hab pkg export docker cl-lab-k\/mytutorialapp\ncore\/hab-pkg-dockerize is not installed\nSearching for core\/hab-pkg-dockerize in remote https:\/\/willem.habitat.sh\/v1\/depot\n\u00bb Installing core\/hab-pkg-dockerize\n\u2192 Using core\/acl\/2.2.52\/20160612075215\n\u2192 Using core\/attr\/2.4.47\/20160612075207\n\u2192 Using core\/bash\/4.3.42\/20160612075613\n\u2192 Using core\/coreutils\/8.24\/20160612075329\n\u2193 Downloading core\/docker\/1.11.2\/20160612140737\n13.70 MB \/ 13.70 MB \\ [==============================] 100.00 % 35.28 MB\/s  \u2713 Installed core\/docker\/1.11.2\/20160612140737\n\u2192 Using core\/findutils\/4.4.2\/20160612080341\n\u2192 Using core\/gawk\/4.1.3\/20160612075739\n\u2192 Using core\/gcc-libs\/5.2.0\/20160612075020\n\u2192 Using core\/glibc\/2.22\/20160612063629\n\u2192 Using core\/gmp\/6.1.0\/20160612064724\n\u2192 Using core\/grep\/2.22\/20160612075540\n\u2193 Downloading core\/hab-studio\/0.7.0\/20160614232531\n2.72 MB \/ 2.72 MB | [================================] 100.00 % 17.08 MB\/s  \u2713 Installed core\/hab-studio\/0.7.0\/20160614232531\n\u2192 Using core\/libcap\/2.24\/20160612075226\n\u2192 Using core\/linux-headers\/4.3\/20160612063537\n\u2192 Using core\/mpfr\/3.1.4\/20160612064810\n\u2192 Using core\/ncurses\/6.0\/20160612075116\n\u2192 Using core\/pcre\/8.38\/20160612075520\n\u2192 Using core\/readline\/6.3.8\/20160612075601\n\u2193 Downloading core\/hab-pkg-dockerize\/0.7.0\/20160614232839\n3.83 KB \/ 3.83 KB \/ [================================] 100.00 % 47.50 MB\/s  \u2713 Installed core\/hab-pkg-dockerize\/0.7.0\/20160614232839\n\u2605 Install of core\/hab-pkg-dockerize complete with 19 packages installed.\nhab-studio: Creating Studio at \/tmp\/hab-pkg-dockerize-JcYv\/rootfs (baseimage)\n&gt; Using local package for cl-lab-k\/mytutorialapp\n&gt; Using local package for core\/gcc-libs\/5.2.0\/20160612075020 via cl-lab-k\/mytutorialapp\n&gt; Using local package for core\/glibc\/2.22\/20160612063629 via cl-lab-k\/mytutorialapp\n&gt; Using local package for core\/linux-headers\/4.3\/20160612063537 via cl-lab-k\/mytutorialapp\n&gt; Using local package for core\/node\/4.2.6\/20160612143531 via cl-lab-k\/mytutorialapp\n\u00bb Installing core\/hab\n\u2193 Downloading core\/hab\/0.7.0\/20160614230104\n2.23 MB \/ 2.23 MB \/ [================================] 100.00 % 15.10 MB\/s  \u2193 Downloading core-20160612031944 public origin key\n75 B \/ 75 B | [=======================================] 100.00 % 4.23 MB\/s  &#x2611; Cached core-20160612031944 public origin key\n\u2713 Installed core\/hab\/0.7.0\/20160614230104\n\u2605 Install of core\/hab complete with 1 packages installed.\n\u00bb Installing core\/hab-sup\n\u2193 Downloading core\/busybox-static\/1.24.2\/20160612081725\n510.89 KB \/ 510.89 KB \\ [=============================] 100.00 % 4.82 MB\/s  \u2713 Installed core\/busybox-static\/1.24.2\/20160612081725\n\u2193 Downloading core\/bzip2\/1.0.6\/20160612075040\n141.05 KB \/ 141.05 KB \/ [=============================] 100.00 % 2.21 MB\/s  \u2713 Installed core\/bzip2\/1.0.6\/20160612075040\n\u2193 Downloading core\/cacerts\/2016.04.20\/20160612081125\n132.32 KB \/ 132.32 KB | [=============================] 100.00 % 2.08 MB\/s  \u2713 Installed core\/cacerts\/2016.04.20\/20160612081125\n\u2192 Using core\/gcc-libs\/5.2.0\/20160612075020\n\u2192 Using core\/glibc\/2.22\/20160612063629\n\u2193 Downloading core\/libarchive\/3.2.0\/20160612140528\n584.98 KB \/ 584.98 KB \/ [=============================] 100.00 % 5.36 MB\/s  \u2713 Installed core\/libarchive\/3.2.0\/20160612140528\n\u2193 Downloading core\/libsodium\/1.0.8\/20160612140317\n187.96 KB \/ 187.96 KB \\ [=============================] 100.00 % 2.90 MB\/s  \u2713 Installed core\/libsodium\/1.0.8\/20160612140317\n\u2192 Using core\/linux-headers\/4.3\/20160612063537\n\u2193 Downloading core\/openssl\/1.0.2h\/20160612081127\n2.10 MB \/ 2.10 MB | [================================] 100.00 % 13.55 MB\/s  \u2713 Installed core\/openssl\/1.0.2h\/20160612081127\n\u2193 Downloading core\/xz\/5.2.2\/20160612080402\n247.38 KB \/ 247.38 KB \\ [=============================] 100.00 % 2.87 MB\/s  \u2713 Installed core\/xz\/5.2.2\/20160612080402\n\u2193 Downloading core\/zlib\/1.2.8\/20160612064520\n73.06 KB \/ 73.06 KB \/ [===============================] 100.00 % 1.72 MB\/s  \u2713 Installed core\/zlib\/1.2.8\/20160612064520\n\u2193 Downloading core\/hab-sup\/0.7.0\/20160614232939\n1.54 MB \/ 1.54 MB | [================================] 100.00 % 10.77 MB\/s  \u2713 Installed core\/hab-sup\/0.7.0\/20160614232939\n\u2605 Install of core\/hab-sup complete with 12 packages installed.\n\u00bb Symlinking hab from core\/hab into \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/hab\/bin\n\u2605 Binary hab from core\/hab\/0.7.0\/20160614230104 symlinked to \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/hab\/bin\/hab\n\u00bb Symlinking bash from core\/busybox-static into \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/bin\n\u2605 Binary bash from core\/busybox-static\/1.24.2\/20160612081725 symlinked to \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/bin\/bash\n\u00bb Symlinking sh from core\/busybox-static into \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/bin\n\u2605 Binary sh from core\/busybox-static\/1.24.2\/20160612081725 symlinked to \/tmp\/hab-pkg-dockerize-JcYv\/rootfs\/bin\/sh\nSending build context to Docker daemon 194.3 MB\nStep 1 : FROM scratch\n---&gt;\nStep 2 : ENV export PATH=:\/hab\/pkgs\/core\/glibc\/2.22\/20160612063629\/bin:\/hab\/pkgs\/core\/node\/4.2.6\/20160612143531\/bin:\/hab\/pkgs\/core\/hab-sup\/0.7.0\/20160614232939\/bin:\/hab\/pkgs\/core\/busybox-static\/1.24.2\/20160612081725\/bin:\/hab\/pkgs\/core\/bzip2\/1.0.6\/20160612075040\/bin:\/hab\/pkgs\/core\/glibc\/2.22\/20160612063629\/bin:\/hab\/pkgs\/core\/openssl\/1.0.2h\/20160612081127\/bin:\/hab\/pkgs\/core\/xz\/5.2.2\/20160612080402\/bin:\/hab\/pkgs\/core\/busybox-static\/1.24.2\/20160612081725\/bin:\/hab\/bin\n---&gt; Running in b5008a720960\n---&gt; 60526d6b38b8\nRemoving intermediate container b5008a720960\nStep 3 : WORKDIR \/\n---&gt; Running in 79e0114410f4\n---&gt; 1f25582154fb\nRemoving intermediate container 79e0114410f4\nStep 4 : ADD rootfs \/\n---&gt; bf6c56e02946\nRemoving intermediate container bd0341eee74b\nStep 5 : VOLUME \/hab\/svc\/mytutorialapp\/data \/hab\/svc\/mytutorialapp\/config\n---&gt; Running in 125b734f1593\n---&gt; 94a73fad68f4\nRemoving intermediate container 125b734f1593\nStep 6 : EXPOSE 9631 8080\n---&gt; Running in 4b0a51d0a5e0\n---&gt; 13714b401896\nRemoving intermediate container 4b0a51d0a5e0\nStep 7 : ENTRYPOINT \/init.sh\n---&gt; Running in 803ea88c77af\n---&gt; f0584fd30c70\nRemoving intermediate container 803ea88c77af\nStep 8 : CMD start cl-lab-k\/mytutorialapp\n---&gt; Running in 02e330795f60\n---&gt; 2358112772ff\nRemoving intermediate container 02e330795f60\nSuccessfully built 2358112772ff\n[3][default:\/src:0]#<\/pre>\n<p>\u30b9\u30bf\u30b8\u30aa\u304b\u3089 exit \u3057\u3001<a href=\"https:\/\/docs.docker.com\/v1.11\/engine\/reference\/commandline\/images\/\">docker images<\/a> \u30b3\u30de\u30f3\u30c9\u3067 Docker \u30a4\u30e1\u30fc\u30b8\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ docker images\nREPOSITORY               TAG                    IMAGE ID            CREATED             SIZE\ncl-lab-k\/mytutorialapp   0.1.0-20160617092533   2358112772ff        38 seconds ago      187.7 MB\ncl-lab-k\/mytutorialapp   latest                 2358112772ff        38 seconds ago      187.7 MB\nubuntu:~$<\/pre>\n<p>\u3053\u306e Docker \u30a4\u30e1\u30fc\u30b8\u3092 <a href=\"https:\/\/docs.docker.com\/v1.11\/engine\/reference\/commandline\/run\/\">docker run<\/a> \u30b3\u30de\u30f3\u30c9\u3067\u8d77\u52d5\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ docker run -it -p 8080:8080 cl-lab-k\/mytutorialapp\nhab-sup(MN): Starting cl-lab-k\/mytutorialapp\nhab-sup(GS): Supervisor 172.17.0.2: 603c7d33-f07d-41cd-be42-8d823ce51391\nhab-sup(GS): Census mytutorialapp.default: ab4ef7ba-6a46-467a-a532-d45bacf67707\nhab-sup(GS): Starting inbound gossip listener\nhab-sup(GS): Starting outbound gossip distributor\nhab-sup(GS): Starting gossip failure detector\nhab-sup(CN): Starting census health adjuster\nhab-sup(SC): Updated config.json\nhab-sup(TP): Restarting because the service config was updated via the census\nmytutorialapp(SV): Starting\nmytutorialapp(O):\nmytutorialapp(O): &gt; mytutorialapp@0.1.0 start \/hab\/svc\/mytutorialapp\nmytutorialapp(O): &gt; node server.js\nmytutorialapp(O):\nmytutorialapp(O): Running on http:\/\/0.0.0.0:8080<\/pre>\n<p>\u5225\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ curl http:\/\/127.0.0.1:8080\/\nHello, World!ubuntu:~$<\/pre>\n<p>\u5148\u306b\u8a2d\u5b9a\u3057\u3066\u3044\u305f\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b <a href=\"https:\/\/docs.docker.com\/v1.11\/engine\/reference\/commandline\/run\/#set-environment-variables-e-env-env-file\">-e \u30aa\u30d7\u30b7\u30e7\u30f3<\/a> \u3067\u74b0\u5883\u5909\u6570\u3092\u4e0e\u3048\u3066\u8a2d\u5b9a\u3092\u4e0a\u66f8\u304d\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ docker run -e HAB_MYTUTORIALAPP='message=\"Habitat rocks!\"' -it -p 8080:8080 cl-lab-k\/mytutorialapp\nhab-sup(MN): Starting cl-lab-k\/mytutorialapp\n:\n:\n:\nmytutorialapp(O):\nmytutorialapp(O): Running on http:\/\/0.0.0.0:8080<\/pre>\n<p>\u5225\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu:~$ curl http:\/\/127.0.0.1:8080\/\nHabitat rocks!ubuntu:~$<\/pre>\n<p>\u4e0a\u66f8\u304d\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>\u304a\u308f\u308a\u306b<\/h2>\n<p>\u3053\u308c\u3067\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306f\u7d42\u4e86\u3067\u3059\u3002\u3042\u304f\u307e\u3067\u89e6\u308a\u306e\u90e8\u5206\u3060\u3051\u306a\u306e\u3067\u3001Habitat \u306e\u7279\u9577\u306b\u3064\u3044\u3066\u306a\u304b\u306a\u304b\u4f1d\u308f\u3089\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u8e0f\u307e\u3048\u308b\u3053\u3068\u3067\u3001Habitat \u306e\u6982\u5ff5\u3092\u3088\u308a\u6df1\u304f\u77e5\u308b\u305f\u3081\u306e\u624b\u304c\u304b\u308a\u306b\u306a\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/www.habitat.sh\/docs\/\">Habitat Docs<\/a><\/li>\n<li><a href=\"https:\/\/www.habitat.sh\/try\/\">Habitat Demo<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/habitat-sh\/habitat\">habitat-sh\/habitat<\/a><\/li>\n<\/ul>\n<p>\u5f15\u304d\u7d9a\u304d\u3001Habitat \u306b\u3064\u3044\u3066\u8ffd\u3063\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067 ubuntu\/xenial64 \u3092\u8d77\u52d5\u3057\u3001\u305d\u3061\u3089\u3067\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2 [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":14154,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[36,31,72],"tags":[],"class_list":["post-14208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chef","category-higuchi","category-habitat"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-28T04:00:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-25T07:06:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png\" \/>\n\t<meta property=\"og:image:width\" content=\"340\" \/>\n\t<meta property=\"og:image:height\" content=\"154\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daisuke Higuchi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daisuke Higuchi\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208\"},\"author\":{\"name\":\"Daisuke Higuchi\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"headline\":\"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat\",\"datePublished\":\"2016-06-28T04:00:02+00:00\",\"dateModified\":\"2026-06-25T07:06:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208\"},\"wordCount\":215,\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/bb8029d9f52e380760673baf1575a695.png\",\"articleSection\":[\"Chef\",\"d-higuchi\",\"Habitat\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208\",\"name\":\"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/bb8029d9f52e380760673baf1575a695.png\",\"datePublished\":\"2016-06-28T04:00:02+00:00\",\"dateModified\":\"2026-06-25T07:06:16+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"description\":\"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#primaryimage\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/bb8029d9f52e380760673baf1575a695.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2016\\\/06\\\/bb8029d9f52e380760673baf1575a695.png\",\"width\":340,\"height\":154},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\\\/14208#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Chef\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/chef\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\",\"name\":\"Daisuke Higuchi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"caption\":\"Daisuke Higuchi\"},\"description\":\"\u306f\u3084\u308a\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208","og_locale":"ja_JP","og_type":"article","og_title":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067","og_url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2016-06-28T04:00:02+00:00","article_modified_time":"2026-06-25T07:06:16+00:00","og_image":[{"width":340,"height":154,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png","type":"image\/png"}],"author":"Daisuke Higuchi","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"Daisuke Higuchi","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"16\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208"},"author":{"name":"Daisuke Higuchi","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"headline":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat","datePublished":"2016-06-28T04:00:02+00:00","dateModified":"2026-06-25T07:06:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208"},"wordCount":215,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png","articleSection":["Chef","d-higuchi","Habitat"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208","url":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208","name":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png","datePublished":"2016-06-28T04:00:02+00:00","dateModified":"2026-06-25T07:06:16+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"description":"Chef, d-higuchi, Habitat |\u672c\u7a3f\u306f Chef\u793e\u306b\u3088\u308b\u30a2\u30d7\u30ea\u81ea\u52d5\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 Habitat \u306e \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u5b9f\u65bd\u3057\u3066\u307f\u305f\u7d50\u679c\u3067\u3059\u3002 Vagrant + VirtualBox \u3067","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2016\/06\/bb8029d9f52e380760673baf1575a695.png","width":340,"height":154},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef\/14208#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative"},{"@type":"ListItem","position":3,"name":"Chef","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/chef"},{"@type":"ListItem","position":4,"name":"Habitat \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u5b9f\u65bd\u3057\u3066\u307f\u308b #getchef #habitat"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206","name":"Daisuke Higuchi","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","caption":"Daisuke Higuchi"},"description":"\u306f\u3084\u308a\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/14208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=14208"}],"version-history":[{"count":6,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/14208\/revisions"}],"predecessor-version":[{"id":84586,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/14208\/revisions\/84586"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/14154"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=14208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=14208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=14208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}