{"id":169,"date":"2017-05-19T23:18:38","date_gmt":"2017-05-19T23:18:38","guid":{"rendered":"http:\/\/cephswift.com\/?page_id=169"},"modified":"2018-08-27T17:34:19","modified_gmt":"2018-08-27T17:34:19","slug":"setup-docker-test-kitchen-for-chef-cookbook-examples","status":"publish","type":"page","link":"https:\/\/cephswift.com\/index.php\/setup-docker-test-kitchen-for-chef-cookbook-examples\/","title":{"rendered":"Setup docker test  kitchen for Chef cookbook examples"},"content":{"rendered":"<p>Setup docker test :<\/p>\n<p>blu@ubuntu-test01:~$ cat setup_chefdk_ubuntu.sh<br \/>\n#wget https:\/\/packages.chef.io\/files\/stable\/chefdk\/1.3.43\/ubuntu\/16.04\/chefdk_1.3.43-1_amd64.deb<br \/>\n#sudo dpkg -i chefdk_*.deb<br \/>\n#chef verify<br \/>\n#sleep 5<br \/>\necho \u2018eval \u201c$(chef shell-init bash)\u201d\u2018 &gt;&gt; ~\/.bash_profile<br \/>\nsource ~\/.bash_profile<br \/>\nmkdir ~\/chef-repo\/.chef<br \/>\nblu@ubuntu-test01:~$<\/p>\n<p>blu@ubuntu-test01:~$ cat setup_docker.sh<br \/>\nsudo apt-key adv \u2013keyserver hkp:\/\/p80.pool.sks-keyservers.net:80 \u2013recv-keys 58118E89F3A912897C070ADBF76221572C52609D<br \/>\nsudo apt-add-repository \u2018deb https:\/\/apt.dockerproject.org\/repo ubuntu-xenial main\u2019<br \/>\nsudo apt-get update<br \/>\napt-cache policy docker-engine<br \/>\nsudo apt-get install -y docker-engine<br \/>\nsudo systemctl status docker<\/p>\n<p>#sudo usermod -aG docker $(whoami)<\/p>\n<p>#sudo usermod -aG docker ## example : $ sudo usermod -aG docker blu<br \/>\n#docker docker-subcommand \u2013help<br \/>\ndocker info<br \/>\n#docker run hello-world<br \/>\ndocker search ubuntu<br \/>\ndocker pull ubuntu<br \/>\ndocker run ubuntu<br \/>\ndocker images<\/p>\n<p>#docker run -it ubuntu<br \/>\n# https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-and-use-docker-on-ubuntu-16-04<br \/>\n# https:\/\/cloud.docker.com\/<br \/>\n# https:\/\/docs.docker.com\/engine\/userguide\/<\/p>\n<p>blu@ubuntu-test01:~$ sudo docker ps<br \/>\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br \/>\nd8d0fb9aaa99 ubuntu \u201c\/bin\/bash\u201d 18 minutes ago Up 18 minutes networktest<\/p>\n<p>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<\/p>\n<p>kitchen test: ( on RHEL 7.0):<\/p>\n<p>448 cd git_cookbook\/<br \/>\n449 cat .kitchen.yml<br \/>\n450 berks install<br \/>\n451 kitchen init<br \/>\n452 kitchen create<br \/>\n453 sudo kitchen create<br \/>\n455 kitchen list<br \/>\n457 kitchen login<br \/>\n458 kitchen converge<br \/>\n459 kitchen verify<\/p>\n<p>[chef@chefTest001 git_cookbook]$ pwd<br \/>\n\/export\/home\/chef\/cookbook\/git_cookbook<\/p>\n<p>[chef@chefTest001 git_cookbook]$ ls -la<br \/>\ntotal 36<br \/>\ndrwxrwxr-x. 7 chef chef 4096 May 6 02:01 .<br \/>\ndrwxrwxr-x. 10 chef chef 4096 May 6 00:21 ..<br \/>\n-rw-rw-r\u2013. 1 chef chef 47 May 5 23:50 Berksfile<br \/>\n-rw\u2014\u2014-. 1 chef chef 89 May 6 02:03 Berksfile.lock<br \/>\n-rw-rw-r\u2013. 1 chef chef 1133 May 5 23:50 chefignore<br \/>\ndrwxrwxr-x. 3 chef chef 64 May 5 23:50 .delivery<br \/>\n-rw-rw-r\u2013. 1 chef chef 185 May 5 23:50 .gitignore<br \/>\ndrwxrwxr-x. 3 chef chef 86 May 6 02:01 .kitchen<br \/>\n-rw-rw-r\u2013. 1 chef chef 399 May 6 01:59 .kitchen.yml<br \/>\n-rw-rw-r\u2013. 1 chef chef 603 May 5 23:50 metadata.rb<br \/>\n-rw-rw-r\u2013. 1 chef chef 60 May 5 23:50 README.md<br \/>\ndrwxrwxr-x. 2 chef chef 23 May 5 23:50 recipes<br \/>\ndrwxrwxr-x. 3 chef chef 38 May 5 23:50 spec<br \/>\ndrwxrwxr-x. 3 chef chef 20 May 5 23:50 test<\/p>\n<p>[chef@chefTest001 git_cookbook]$ cat .kitchen.yml<br \/>\n\u2014<br \/>\ndriver:<br \/>\nname: docker<br \/>\nuse_sudo: false<\/p>\n<p>provisioner:<br \/>\nname: chef_solo<br \/>\nalways_update_cookbooks: true<\/p>\n<p>verifier:<br \/>\nname: inspec<\/p>\n<p>platforms:<br \/>\n\u2013 name: \u2018centos\u2019<br \/>\ndriver_plugin: docker<br \/>\ndriver:<br \/>\nuse_sudo: false<br \/>\nimage: centos:7<br \/>\nsuites:<br \/>\n\u2013 name: default<br \/>\nrun_list:<br \/>\n\u2013 recipe[git_cookbook::default]<br \/>\nverifier:<br \/>\ninspec_tests:<br \/>\n\u2013 test\/recipes<br \/>\nattributes:<br \/>\n[chef@chefTest001 git_cookbook]$<\/p>\n<p>[chef@chefTest001 git_cookbook]$ sudo kitchen create<br \/>\n\u2014\u2013&gt; Starting Kitchen (v1.13.2)<br \/>\n\u2014\u2013&gt; Creating \u2026<br \/>\nSending build context to Docker daemon 63.49 kB<br \/>\nStep 1 : FROM centos:7<br \/>\n\u2014&gt; a8493f5f50ff<br \/>\nStep 2 : ENV container docker<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; cd4f34c2a359<br \/>\nStep 3 : RUN yum clean all<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; e57827f1b45a<br \/>\nStep 4 : RUN yum install -y sudo openssh-server openssh-clients which curl<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 98d0bbc9addc<br \/>\nStep 5 : RUN ssh-keygen -t rsa -f \/etc\/ssh\/ssh_host_rsa_key -N \u201d<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; ad964f0e4ec1<br \/>\nStep 6 : RUN ssh-keygen -t dsa -f \/etc\/ssh\/ssh_host_dsa_key -N \u201d<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 1171ee68fc65<br \/>\nStep 7 : RUN if ! getent passwd kitchen; then useradd -d \/home\/kitchen -m -s \/bin\/bash -p \u2018*\u2019 kitchen; fi<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; adf344a1c27e<br \/>\nStep 8 : RUN echo \u201ckitchen ALL=(ALL) NOPASSWD: ALL\u201d &gt;&gt; \/etc\/sudoers<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 9366130369e8<br \/>\nStep 9 : RUN echo \u201cDefaults !requiretty\u201d &gt;&gt; \/etc\/sudoers<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; c84da9dac217<br \/>\nStep 10 : RUN mkdir -p \/home\/kitchen\/.ssh<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; a93af0df0297<br \/>\nStep 11 : RUN chown -R kitchen \/home\/kitchen\/.ssh<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 40d10af1a509<br \/>\nStep 12 : RUN chmod 0700 \/home\/kitchen\/.ssh<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; f6ca60f49247<br \/>\nStep 13 : RUN touch \/home\/kitchen\/.ssh\/authorized_keys<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 786812c8cff7<br \/>\nStep 14 : RUN chown kitchen \/home\/kitchen\/.ssh\/authorized_keys<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; b4769fcf9c5d<br \/>\nStep 15 : RUN chmod 0600 \/home\/kitchen\/.ssh\/authorized_keys<br \/>\n\u2014&gt; Using cache<br \/>\n\u2014&gt; 34137ca6012b<br \/>\nStep 16 : RUN echo ssh-rsa\\ AAAAB3NzaC1yc2EAAAADAQABAAABAQD5OPccUfzFS7QWobVYo4ZcU953IV\\+TMsYby8U1EwDApxktasuFvL5EeZKcIpoa9T7yTrcrc2eoHhLx3dzHZn5KiilZmj7ifI2\\+c7nscNgP68Br15xbCCyRRILa3DNGdbwCvlNWPQST\\+dIOgnhvB2krT8jm8ppB8E\/3tyRCgwvKNWNs9jVOJKWqgQHfanpu4upQKsqbwv04cEOZ5fnivqTG90QvVOaG724czxcrdxkWcZMV6n9ztFwVTxcf11smyjZF0xCqHV9GoIxWhhbSCakn5uc9GnjHdrpeTcCPh9vDOn71TQrmaU8CFpwLK4dgVnvQGxVh1v4147XakGCGmbut\\ kitchen_docker_key &gt;&gt; \/home\/kitchen\/.ssh\/authorized_keys<br \/>\n\u2014&gt; Running in 9e5593989577<br \/>\n\u2014&gt; f07bfba007d4<br \/>\nRemoving intermediate container 9e5593989577<br \/>\nSuccessfully built f07bfba007d4<br \/>\n84dd0e5f49a7606b995cd82d3f85cc5932571814f5da5b42355be35dd44b413b<br \/>\n0.0.0.0:32771<br \/>\n[SSH] Established<br \/>\nFinished creating (0m3.20s).<br \/>\n\u2014\u2013&gt; Kitchen is finished. (0m4.26s)<\/p>\n<p>[chef@chefTest001 git_cookbook]$ sudo kitchen list<br \/>\nInstance Driver Provisioner Verifier Transport Last Action<br \/>\ndefault-centos Docker ChefSolo Inspec Ssh Created<\/p>\n<p>[chef@chefTest001 git_cookbook]$ kitchen list<br \/>\nInstance Driver Provisioner Verifier Transport Last Action<br \/>\ndefault-centos Docker ChefSolo Inspec Ssh Created<\/p>\n<p>[chef@chefTest001 git_cookbook]$ kitchen ssh<br \/>\nCould not find command \u201cssh\u201d.<\/p>\n<p>[chef@chefTest001 git_cookbook]$ kitchen login<br \/>\nLast login: Fri May 5 20:31:56 2017 from 172.17.0.1<\/p>\n<p>[kitchen@84dd0e5f49a7 ~]$ exit<br \/>\nlogout<br \/>\nConnection to localhost closed.<\/p>\n<p>[chef@chefTest001 git_cookbook]$ kitchen converge<br \/>\n\u2014\u2013&gt; Starting Kitchen (v1.13.2)<br \/>\n\u2014\u2013&gt; Converging \u2026<br \/>\nPreparing files for transfer<br \/>\nPreparing dna.json<br \/>\nResolving cookbook dependencies with Berkshelf 5.2.0\u2026<br \/>\nRemoving non-cookbook files before transfer<br \/>\nPreparing solo.rb<br \/>\n\u2014\u2013&gt; Installing Chef Omnibus (install only if missing)<br \/>\nDownloading https:\/\/omnitruck.chef.io\/install.sh to file \/tmp\/install.sh<br \/>\nTrying curl\u2026<br \/>\nDownload complete.<br \/>\nel 7 x86_64<br \/>\nGetting information for chef stable for el\u2026<br \/>\ndownloading https:\/\/omnitruck.chef.io\/stable\/chef\/metadata?v=&amp;p=el&amp;pv=7&amp;m=x86_64<br \/>\nto file \/tmp\/install.sh.60\/metadata.txt<br \/>\ntrying curl\u2026<br \/>\nsha1 f0eac57e53833d710334839fbe4e9b940d1c43c6<br \/>\nsha256 a3cb30fe2eb6e3ce5ea8914635d01562660f4978568fa3303b14336eefdb09ee<br \/>\nurl https:\/\/packages.chef.io\/files\/stable\/chef\/13.0.118\/el\/7\/chef-13.0.118-1.el7.x86_64.rpm<br \/>\nversion 13.0.118<br \/>\ndownloaded metadata file looks valid\u2026<br \/>\ndownloading https:\/\/packages.chef.io\/files\/stable\/chef\/13.0.118\/el\/7\/chef-13.0.118-1.el7.x86_64.rpm<br \/>\nto file \/tmp\/install.sh.60\/chef-13.0.118-1.el7.x86_64.rpm<br \/>\ntrying curl\u2026<br \/>\nComparing checksum with sha256sum\u2026<\/p>\n<p>WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING<\/p>\n<p>You are installing an omnibus package without a version pin. If you are installing<br \/>\non production servers via an automated process this is DANGEROUS and you will<br \/>\nbe upgraded without warning on new releases, even to new major releases.<br \/>\nLetting the version float is only appropriate in desktop, test, development or<br \/>\nCI\/CD environments.<\/p>\n<p>WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING<\/p>\n<p>Installing chef<br \/>\ninstalling with rpm\u2026<br \/>\nwarning: \/tmp\/install.sh.60\/chef-13.0.118-1.el7.x86_64.rpm: Header V4 DSA\/SHA1 Signature, key ID 83ef826a: NOKEY<br \/>\nPreparing\u2026 ################################# [100%]<br \/>\nUpdating \/ installing\u2026<br \/>\n1:chef-13.0.118-1.el7 ################################# [100%]<br \/>\nThank you for installing Chef!<br \/>\nTransferring files to<br \/>\nStarting Chef Client, version 13.0.118<br \/>\n[2017-05-05T20:34:14+00:00] WARN: Plugin Network: unable to detect ipaddress<br \/>\n[2017-05-05T20:34:14+00:00] WARN: Plugin Network: unable to detect ipaddress<br \/>\nCreating a new client identity for default-centos using the validator key.<br \/>\nresolving cookbooks for run list: [\u201cgit_cookbook::default\u201d]<br \/>\nSynchronizing Cookbooks:<br \/>\n\u2013 git_cookbook (0.1.0)<br \/>\nInstalling Cookbook Gems:<br \/>\nCompiling Cookbooks\u2026<br \/>\nConverging 1 resources<br \/>\nRecipe: git_cookbook::default<br \/>\n* log[This is default git recipe] action write<\/p>\n<p>Running handlers:<br \/>\nRunning handlers complete<br \/>\nChef Client finished, 1\/1 resources updated in 01 seconds<br \/>\nFinished converging (0m28.97s).<br \/>\n\u2014\u2013&gt; Kitchen is finished. (0m30.11s)<br \/>\n[chef@chefTest001 git_cookbook]$ kitchen verify<br \/>\n\u2014\u2013&gt; Starting Kitchen (v1.13.2)<br \/>\n\u2014\u2013&gt; Setting up \u2026<br \/>\nFinished setting up (0m0.00s).<br \/>\n\u2014\u2013&gt; Verifying \u2026<br \/>\nUsing `\/export\/home\/chef\/cookbook\/git_cookbook\/test\/recipes\/default` for testing<\/p>\n<p>Target: ssh:\/\/kitchen@localhost:32771<\/p>\n<p>User root<br \/>\n&#x2714; should exist<br \/>\n\u25cb This is an example test, replace with your own test.<br \/>\nPort 80<br \/>\n&#x2714; should not be listening<br \/>\n\u25cb This is an example test, replace with your own test.<\/p>\n<p>Test Summary: 2 successful, 0 failures, 2 skipped<br \/>\nFinished verifying (0m0.73s).<br \/>\n\u2014\u2013&gt; Kitchen is finished. (0m1.90s)<\/p>\n<p>\u00b7 \u00a9 2017 Cephswift \u00b7 Designed by Cephswift.com \u00b7<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setup docker test : blu@ubuntu-test01:~$ cat setup_chefdk_ubuntu.sh #wget https:\/\/packages.chef.io\/files\/stable\/chefdk\/1.3.43\/ubuntu\/16.04\/chefdk_1.3.43-1_amd64.deb #sudo dpkg -i chefdk_*.deb #chef verify #sleep 5 echo \u2018eval \u201c$(chef shell-init bash)\u201d\u2018 &gt;&gt; ~\/.bash_profile source ~\/.bash_profile mkdir ~\/chef-repo\/.chef blu@ubuntu-test01:~$ blu@ubuntu-test01:~$ cat setup_docker.sh sudo apt-key adv \u2013keyserver hkp:\/\/p80.pool.sks-keyservers.net:80 \u2013recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo apt-add-repository \u2018deb https:\/\/apt.dockerproject.org\/repo ubuntu-xenial main\u2019 sudo apt-get update apt-cache policy docker-engine sudo apt-get install -y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/pages\/169"}],"collection":[{"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":4,"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/pages\/169\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/pages\/169\/revisions\/211"}],"wp:attachment":[{"href":"https:\/\/cephswift.com\/index.php\/wp-json\/wp\/v2\/media?parent=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}