{"id":20811301,"url":"https://github.com/express42/testo","last_synced_at":"2025-05-07T09:25:54.065Z","repository":{"id":13949310,"uuid":"16649347","full_name":"express42/testo","owner":"express42","description":"Example project with chef, berkshelf, vagrant and packer.","archived":false,"fork":false,"pushed_at":"2017-07-19T10:14:04.000Z","size":107,"stargazers_count":17,"open_issues_count":0,"forks_count":21,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-03-31T08:38:48.249Z","etag":null,"topics":["base","chef","environment"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/express42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-08T18:04:57.000Z","updated_at":"2022-05-24T08:50:04.000Z","dependencies_parsed_at":"2022-08-25T01:41:06.079Z","dependency_job_id":null,"html_url":"https://github.com/express42/testo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express42%2Ftesto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express42%2Ftesto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express42%2Ftesto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/express42%2Ftesto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/express42","download_url":"https://codeload.github.com/express42/testo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252849500,"owners_count":21813820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base","chef","environment"],"created_at":"2024-11-17T20:39:59.893Z","updated_at":"2025-05-07T09:25:54.044Z","avatar_url":"https://github.com/express42.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/express42/testo.svg?branch=master)](https://travis-ci.org/express42/testo)\n\n# Overview\n\nTo get a perfect pie every Chef should take a good testo (pastry in russian). Also this repository is a good start to test(o) a new Infrastructure as Code approach.\n\nWe use chef with berkshelf, vagrant and packer to develop infrastructure. The purpose of this repository is to show how to use this tools all together on an example project.\n\n# Repository Directories\n\nThis repository contains several directories, and each directory contains a README file that describes what it is for in greater detail, and how to use it for managing your systems with Chef.\n\n* `config/` - Contains the Knife configuration file, `knife.rb`.\n* `cookbooks/` - Contains cookbooks that have been downloaded from remote repositories or created locally.\n* `data_bags/` - Stores data bags (and data bag items) in JSON (.json).\n* `environments/` - Stores environment in JSON (.json).\n* `nodes/` - Stores nodes run lists in JSON (.json).\n* `packer/` - Stores packer templates.\n* `roles/` - Stores roles in JSON (.json).\n* `Vagrantfile` - Contains the Vagrant configuration.\n* `Berksfile` - Contains a list of sources identifying what cokbooks to retrieve and where to get them.\n* `Berksfile.lock` - Contains the versions of all cookbook dependencies.\n\n# Getting Started\n\nGet the [latest release of Chef Development Kit][ChefDK]\n\nClone the repo from GitHub:\n```\n$ git clone git@github.com:express42/testo.git\n```\n\nConfigure Knife:\n\n```\n$ knife configure\nWARNING: No knife configuration file found\nWhere should I put the config file? [~/.chef/knife.rb]\nPlease enter the chef server URL: [http://chef-server-api:443]\nPlease enter an existing username or clientname for the API: [username]\nPlease enter the validation clientname: [chef-validator]\nPlease enter the location of the validation key: [~/.chef/chef-validator.pem]\nPlease enter the path to a chef repository (or leave blank):\n```\n\nTest knife configuration:\n```\n$ knife status\n```\n\nInstall the cookbooks you specified in the Berksfile and their dependencies:\n```\n$ berks install\n$ berks vendor\n```\n\n# Knife\nknife is a command-line tool that provides an interface between a local chef-repo and the Chef server. Knife helps users to manage:\n\n* Nodes\n* Cookbooks and recipes\n* Roles\n* Stores of JSON data (data bags), including encrypted data\n* Environments\n* The installation of the chef-client on management workstations\n* Searching of indexed data on the Chef server\n\n## Working with Knife\n```\n$ knife status\n$ knife node list\n$ knife cookbook upload COOKBOOK\n$ knife cookbook download COOKBOOK\n$ knife node edit NODE\n$ knife node run_list add [NODE] [ENTRY[,ENTRY]]\n$ knife ssh 'name:*' 'uptime'\n$ knife ssh 'name:*' 'sudo service nginx reload'\n```\n\n# Vagrant\n\nGet the [latest release of Vagrant][Vagrant]\n\nInstall the Vagrant berkshelf plugin:\n```\n$ vagrant plugin install vagrant-berkshelf\n```\n\nUp and running:\n```\n$ vagrant up\n$ vagrant provision\n$ vagrant ssh\n$ vagrant reload\n$ vagrant destroy\n```\n\n# Test Kitchen\n\nFirst install the [latest release of Vagrant][Vagrant].\n```\n$ kitchen list\n$ kitchen converge base-ubuntu-1404\n$ kitchen login base-ubuntu-1404\n$ kitchen destroy base-ubuntu-1404\n```\n\n# Next Steps\n\nRead the README file in each of the subdirectories for more information about what goes in those directories.\n\n[ChefDK]: https://www.getchef.com/downloads/chef-dk \"Chef Development Kit\"\n[Vagrant]: https://www.vagrantup.com/downloads \"Vagrant\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpress42%2Ftesto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexpress42%2Ftesto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexpress42%2Ftesto/lists"}