{"id":16445218,"url":"https://github.com/dgapitts/vagrant-chef-client-intro","last_synced_at":"2026-05-17T14:33:46.601Z","repository":{"id":36529561,"uuid":"40835333","full_name":"dgapitts/vagrant-chef-client-intro","owner":"dgapitts","description":"Getting started with Chef-Client running against Manged Chef ... build a simple postgres  db server","archived":false,"fork":false,"pushed_at":"2015-08-16T19:45:35.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-26T08:32:58.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgapitts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-16T19:22:19.000Z","updated_at":"2015-08-16T19:39:47.000Z","dependencies_parsed_at":"2022-09-11T04:01:21.033Z","dependency_job_id":null,"html_url":"https://github.com/dgapitts/vagrant-chef-client-intro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dgapitts/vagrant-chef-client-intro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgapitts%2Fvagrant-chef-client-intro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgapitts%2Fvagrant-chef-client-intro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgapitts%2Fvagrant-chef-client-intro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgapitts%2Fvagrant-chef-client-intro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgapitts","download_url":"https://codeload.github.com/dgapitts/vagrant-chef-client-intro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgapitts%2Fvagrant-chef-client-intro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33142195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-11T09:43:41.534Z","updated_at":"2026-05-17T14:33:41.593Z","avatar_url":"https://github.com/dgapitts.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started with Chef Client and Hosted Chef\n\nAfter yesterday working on chef-solo, today I switched to the more standard chef client/server model using the 'chef cloud hosted service' for the server side i.e. https://manage.chef.io/.\n\nAgain I have loosely following one of the getting started tutorails: http://gettingstartedwithchef.com/introducing-chef-server.html. \n\nAlthough my focus was not on building another lamp stack, instead I wanted to install postgres.\n\nThis time, instead on the trusty64 (14.04) Ubuntu box image, I used an opscode box running centos 6.4 (opscode-centos-6.4), as this is pre-configured to make the chef-provisioning simpler ... this wasn't mentinoed in the above tutorial which is focused on clients in the cloud e.g. rackspace and not vagrant/virtualbox local VMs. However after some googling I found: http://selvakumar.me/opscode-chef-setup-and-sample-cookbook-reference/.\n\nSo how did it work, well the first steps are similar to chef-solo:\n  - step01_setup_chef_and_download_postgres_cookbook.sh\n\nalthough I'm now add both my personal and my organization keys:\n```sh\ncp /vagrant/dgapitts.pem /vagrant/chef-repo/.chef/\ncp /vagrant/dgapitts_demo-validator.pem /vagrant/chef-repo/.chef/\n```\nThere is also a node key which needs to be copied:\n```sh\nsudo cp /vagrant/chefclient01.pem /etc/chef/client.pem\n```\nNaturally all these keys most downloaded for yourself i.e. you have registered your user-id, organization-id and node-id, after you have registered these within https://manage.chef.io/.\n\nLastly at the end of this script, I use knife to download the postgresql cookbook:\n```sh\n#download postgres cookbook\ncd /vagrant/chef-repo/cookbooks\nknife cookbook site download postgresql\ntar zxf postgresql-3.4.20.tar.gz\nrm postgresql*tar.gz\n```\n\nThe 2nd script (step02_knife_upload_cookbooks.sh) is simpler:\n\n```sh\n#download postgres cookbook\necho '*** upload pre-requisite cookbooks : [apt,build-essential, chef-sugar, openssl] ***'\ncd /vagrant/chef-repo/cookbooks\nknife cookbook upload apt\nknife cookbook upload build-essential\nknife cookbook upload chef-sugar\nknife cookbook upload openssl\n```\n\nNow stepping carefully through the tutorial, I creates a pg_db role, adding to \"recipe[postgresql::server]\" to the run_list:\n\n```sh\n[vagrant@localhost vagrant]$ knife role create pg_db --editor vi\nCreated role[pg_db]\n```\n\nThis role was uploaded to the cloud and can be inspected via the show command:\n\n```sh\n[vagrant@localhost chef-repo]$ knife role show pg_db -d -Fjson\n{\n  \"name\": \"pg_db\",\n  \"description\": \"\",\n  \"json_class\": \"Chef::Role\",\n  \"default_attributes\": {\n\n  },\n  \"override_attributes\": {\n\n  },\n  \"chef_type\": \"role\",\n  \"run_list\": [\n    \"recipe[postgresql::server]\"\n  ],\n  \"env_run_lists\": {\n  }\n}\n```\n\nI also created a named copy under the chef-repo/roles directory:\n\n```sh\nknife role show pg_db -d -Fjson \u003e roles/pg_db.json\n```\n\nThe final step proved quite tricky (http://stackoverflow.com/questions/15373209/issue-with-chef-knife-bootstrapping-a-vagrant-vm), I fixed my issues via a small hack (i.e. setting a root password)\n\n```sh\n[vagrant@chefclient01 chef-repo]$ knife bootstrap --run-list \"role[pg_db]\" --json-attributes \"{\\\"pg_db\\\": {\\\"server_name\\\": \\\"chefclient01\\\"}}\" --sudo chefclient01\n```\n\nand here is the install log/details\n\n\n```sh\nDoing old-style registration with the validation key at /vagrant/chef-repo/.chef/dgapitts_demo-validator.pem...\nDelete your validation key in order to use your user credentials instead\n\nConnecting to chefclient01\nroot@chefclient01's password:\nchefclient01 -----\u003e Existing Chef installation detected\nchefclient01 Starting first Chef Client run...\nchefclient01 Starting Chef Client, version 12.4.1\nchefclient01 resolving cookbooks for run list: [\"postgresql::server\"]\nchefclient01 Synchronizing Cookbooks:\nchefclient01   - build-essential\nchefclient01   - apt\nchefclient01   - chef-sugar\nchefclient01   - openssl\nchefclient01   - postgresql\nchefclient01 Compiling Cookbooks...\nchefclient01 Converging 12 resources\nchefclient01 Recipe: postgresql::client\nchefclient01   * yum_package[postgresql-devel] action install\nchefclient01     - install version 8.4.20-3.el6_6 of package postgresql-devel\nchefclient01 Recipe: postgresql::server_redhat\nchefclient01   * group[postgres] action create\nchefclient01     - create postgres\nchefclient01   * user[postgres] action create\nchefclient01     - create user postgres\nchefclient01   * directory[/var/lib/pgsql/data] action create\nchefclient01     - create new directory /var/lib/pgsql/data\nchefclient01     - change owner from '' to 'postgres'\nchefclient01     - change group from '' to 'postgres'\nchefclient01   * yum_package[postgresql-server] action install\nchefclient01     - install version 8.4.20-3.el6_6 of package postgresql-server\nchefclient01   * directory[/etc/sysconfig/pgsql] action create\nchefclient01     - change mode from '0755' to '0644'\nchefclient01   * template[/etc/sysconfig/pgsql/postgresql] action create\nchefclient01     - create new file /etc/sysconfig/pgsql/postgresql\nchefclient01     - update content in file /etc/sysconfig/pgsql/postgresql from none to b2892e\nchefclient01     --- /etc/sysconfig/pgsql/postgresql\t2015-08-16 17:16:37.149369847 +0000\nchefclient01     +++ /tmp/chef-rendered-template20150816-3283-f5ot82\t2015-08-16 17:16:37.149369847 +0000\nchefclient01     @@ -1 +1,3 @@\nchefclient01     +PGDATA=/var/lib/pgsql/data\nchefclient01     +PGPORT=5432\nchefclient01     - change mode from '' to '0644'\nchefclient01   * execute[/sbin/service postgresql initdb ] action run\nchefclient01     - execute /sbin/service postgresql initdb\nchefclient01 Recipe: postgresql::server_conf\nchefclient01   * template[/var/lib/pgsql/data/postgresql.conf] action create\nchefclient01     - update content in file /var/lib/pgsql/data/postgresql.conf from 7b00a2 to afb1b3\nchefclient01     --- /var/lib/pgsql/data/postgresql.conf\t2015-08-16 17:16:39.101393348 +0000\nchefclient01     +++ /tmp/chef-rendered-template20150816-3283-vjaj49\t2015-08-16 17:16:43.457214336 +0000\nchefclient01     @@ -1,502 +1,23 @@\nchefclient01     -# -----------------------------\nchefclient01      # PostgreSQL configuration file\nchefclient01     -# -----------------------------\nchefclient01     -#\nchefclient01     -# This file consists of lines of the form:\nchefclient01     -#\nchefclient01     -#   name = value\nchefclient01     -#\nchefclient01     -# (The \"=\" is optional.)  Whitespace may be used.  Comments are introduced with\nchefclient01     -# \"#\" anywhere on a line.  The complete list of parameter names and allowed\nchefclient01     -# values can be found in the PostgreSQL documentation.\nchefclient01     -#\nchefclient01     -# The commented-out settings shown in this file represent the default values.\nchefclient01     -# Re-commenting a setting is NOT sufficient to revert it to the default value;\nchefclient01     -# you need to reload the server.\nchefclient01     -#\nchefclient01     -# This file is read on server startup and when the server receives a SIGHUP\nchefclient01     -# signal.  If you edit the file on a running system, you have to SIGHUP the\nchefclient01     -# server for the changes to take effect, or use \"pg_ctl reload\".  Some\nchefclient01     -# parameters, which are marked below, require a server shutdown and restart to\nchefclient01     -# take effect.\nchefclient01     -#\nchefclient01     -# Any parameter can also be given as a command-line option to the server, e.g.,\nchefclient01     -# \"postgres -c log_connections=on\".  Some parameters can be changed at run time\nchefclient01     -# with the \"SET\" SQL command.\nchefclient01     -#\nchefclient01     -# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds\nchefclient01     -#                MB = megabytes                     s   = seconds\nchefclient01     -#                GB = gigabytes                     min = minutes\nchefclient01     -#                                                   h   = hours\nchefclient01     -#                                                   d   = days\nchefclient01     +# This file was automatically generated and dropped off by chef!\nchefclient01     +# Please refer to the PostgreSQL documentation for details on\nchefclient01     +# configuration settings.\nchefclient01\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# FILE LOCATIONS\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# The default values of these variables are driven from the -D command-line\nchefclient01     -# option or PGDATA environment variable, represented here as ConfigDir.\nchefclient01     -\nchefclient01     -#data_directory = 'ConfigDir'\t\t# use data in another directory\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#hba_file = 'ConfigDir/pg_hba.conf'\t# host-based authentication file\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#ident_file = 'ConfigDir/pg_ident.conf'\t# ident configuration file\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -# If external_pid_file is not explicitly set, no extra PID file is written.\nchefclient01     -#external_pid_file = '(none)'\t\t# write an extra PID file\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# CONNECTIONS AND AUTHENTICATION\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Connection Settings -\nchefclient01     -\nchefclient01     -#listen_addresses = 'localhost'\t\t# what IP address(es) to listen on;\nchefclient01     -\t\t\t\t\t# comma-separated list of addresses;\nchefclient01     -\t\t\t\t\t# defaults to 'localhost', '*' = all\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#port = 5432\t\t\t\t# (change requires restart)\nchefclient01     -max_connections = 100\t\t\t# (change requires restart)\nchefclient01     -# Note:  Increasing max_connections costs ~400 bytes of shared memory per\nchefclient01     -# connection slot, plus lock space (see max_locks_per_transaction).\nchefclient01     -#superuser_reserved_connections = 3\t# (change requires restart)\nchefclient01     -#unix_socket_directory = ''\t\t# (change requires restart)\nchefclient01     -#unix_socket_group = ''\t\t\t# (change requires restart)\nchefclient01     -#unix_socket_permissions = 0777\t\t# begin with 0 to use octal notation\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#bonjour_name = ''\t\t\t# defaults to the computer name\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -# - Security and Authentication -\nchefclient01     -\nchefclient01     -#authentication_timeout = 1min\t\t# 1s-600s\nchefclient01     -#ssl = off\t\t\t\t# (change requires restart)\nchefclient01     -#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'\t# allowed SSL ciphers\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#ssl_renegotiation_limit = 512MB\t# amount of data between renegotiations\nchefclient01     -#password_encryption = on\nchefclient01     -#db_user_namespace = off\nchefclient01     -\nchefclient01     -# Kerberos and GSSAPI\nchefclient01     -#krb_server_keyfile = ''\nchefclient01     -#krb_srvname = 'postgres'\t\t# (Kerberos only)\nchefclient01     -#krb_caseins_users = off\nchefclient01     -\nchefclient01     -# - TCP Keepalives -\nchefclient01     -# see \"man 7 tcp\" for details\nchefclient01     -\nchefclient01     -#tcp_keepalives_idle = 0\t\t# TCP_KEEPIDLE, in seconds;\nchefclient01     -\t\t\t\t\t# 0 selects the system default\nchefclient01     -#tcp_keepalives_interval = 0\t\t# TCP_KEEPINTVL, in seconds;\nchefclient01     -\t\t\t\t\t# 0 selects the system default\nchefclient01     -#tcp_keepalives_count = 0\t\t# TCP_KEEPCNT;\nchefclient01     -\t\t\t\t\t# 0 selects the system default\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# RESOURCE USAGE (except WAL)\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Memory -\nchefclient01     -\nchefclient01     -shared_buffers = 32MB\t\t\t# min 128kB\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#temp_buffers = 8MB\t\t\t# min 800kB\nchefclient01     -#max_prepared_transactions = 0\t\t# zero disables the feature\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory\nchefclient01     -# per transaction slot, plus lock space (see max_locks_per_transaction).\nchefclient01     -# It is not advisable to set max_prepared_transactions nonzero unless you\nchefclient01     -# actively intend to use prepared transactions.\nchefclient01     -#work_mem = 1MB\t\t\t\t# min 64kB\nchefclient01     -#maintenance_work_mem = 16MB\t\t# min 1MB\nchefclient01     -#max_stack_depth = 2MB\t\t\t# min 100kB\nchefclient01     -\nchefclient01     -# - Kernel Resource Usage -\nchefclient01     -\nchefclient01     -#max_files_per_process = 1000\t\t# min 25\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#shared_preload_libraries = ''\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -# - Cost-Based Vacuum Delay -\nchefclient01     -\nchefclient01     -#vacuum_cost_delay = 0ms\t\t# 0-100 milliseconds\nchefclient01     -#vacuum_cost_page_hit = 1\t\t# 0-10000 credits\nchefclient01     -#vacuum_cost_page_miss = 10\t\t# 0-10000 credits\nchefclient01     -#vacuum_cost_page_dirty = 20\t\t# 0-10000 credits\nchefclient01     -#vacuum_cost_limit = 200\t\t# 1-10000 credits\nchefclient01     -\nchefclient01     -# - Background Writer -\nchefclient01     -\nchefclient01     -#bgwriter_delay = 200ms\t\t\t# 10-10000ms between rounds\nchefclient01     -#bgwriter_lru_maxpages = 100\t\t# 0-1000 max buffers written/round\nchefclient01     -#bgwriter_lru_multiplier = 2.0\t\t# 0-10.0 multipler on buffers scanned/round\nchefclient01     -\nchefclient01     -# - Asynchronous Behavior -\nchefclient01     -\nchefclient01     -#effective_io_concurrency = 1\t\t# 1-1000. 0 disables prefetching\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# WRITE AHEAD LOG\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Settings -\nchefclient01     -\nchefclient01     -#fsync = on\t\t\t\t# turns forced synchronization on or off\nchefclient01     -#synchronous_commit = on\t\t# immediate fsync at commit\nchefclient01     -#wal_sync_method = fsync\t\t# the default is the first option\nchefclient01     -\t\t\t\t\t# supported by the operating system:\nchefclient01     -\t\t\t\t\t#   open_datasync\nchefclient01     -\t\t\t\t\t#   fdatasync (default on Linux)\nchefclient01     -\t\t\t\t\t#   fsync\nchefclient01     -\t\t\t\t\t#   fsync_writethrough\nchefclient01     -\t\t\t\t\t#   open_sync\nchefclient01     -#full_page_writes = on\t\t\t# recover from partial page writes\nchefclient01     -#wal_buffers = 64kB\t\t\t# min 32kB\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#wal_writer_delay = 200ms\t\t# 1-10000 milliseconds\nchefclient01     -\nchefclient01     -#commit_delay = 0\t\t\t# range 0-100000, in microseconds\nchefclient01     -#commit_siblings = 5\t\t\t# range 1-1000\nchefclient01     -\nchefclient01     -# - Checkpoints -\nchefclient01     -\nchefclient01     -#checkpoint_segments = 3\t\t# in logfile segments, min 1, 16MB each\nchefclient01     -#checkpoint_timeout = 5min\t\t# range 30s-1h\nchefclient01     -#checkpoint_completion_target = 0.5\t# checkpoint target duration, 0.0 - 1.0\nchefclient01     -#checkpoint_warning = 30s\t\t# 0 disables\nchefclient01     -\nchefclient01     -# - Archiving -\nchefclient01     -\nchefclient01     -#archive_mode = off\t\t# allows archiving to be done\nchefclient01     -\t\t\t\t# (change requires restart)\nchefclient01     -#archive_command = ''\t\t# command to use to archive a logfile segment\nchefclient01     -#archive_timeout = 0\t\t# force a logfile segment switch after this\nchefclient01     -\t\t\t\t# number of seconds; 0 disables\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# QUERY TUNING\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Planner Method Configuration -\nchefclient01     -\nchefclient01     -#enable_bitmapscan = on\nchefclient01     -#enable_hashagg = on\nchefclient01     -#enable_hashjoin = on\nchefclient01     -#enable_indexscan = on\nchefclient01     -#enable_mergejoin = on\nchefclient01     -#enable_nestloop = on\nchefclient01     -#enable_seqscan = on\nchefclient01     -#enable_sort = on\nchefclient01     -#enable_tidscan = on\nchefclient01     -\nchefclient01     -# - Planner Cost Constants -\nchefclient01     -\nchefclient01     -#seq_page_cost = 1.0\t\t\t# measured on an arbitrary scale\nchefclient01     -#random_page_cost = 4.0\t\t\t# same scale as above\nchefclient01     -#cpu_tuple_cost = 0.01\t\t\t# same scale as above\nchefclient01     -#cpu_index_tuple_cost = 0.005\t\t# same scale as above\nchefclient01     -#cpu_operator_cost = 0.0025\t\t# same scale as above\nchefclient01     -#effective_cache_size = 128MB\nchefclient01     -\nchefclient01     -# - Genetic Query Optimizer -\nchefclient01     -\nchefclient01     -#geqo = on\nchefclient01     -#geqo_threshold = 12\nchefclient01     -#geqo_effort = 5\t\t\t# range 1-10\nchefclient01     -#geqo_pool_size = 0\t\t\t# selects default based on effort\nchefclient01     -#geqo_generations = 0\t\t\t# selects default based on effort\nchefclient01     -#geqo_selection_bias = 2.0\t\t# range 1.5-2.0\nchefclient01     -\nchefclient01     -# - Other Planner Options -\nchefclient01     -\nchefclient01     -#default_statistics_target = 100\t# range 1-10000\nchefclient01     -#constraint_exclusion = partition\t# on, off, or partition\nchefclient01     -#cursor_tuple_fraction = 0.1\t\t# range 0.0-1.0\nchefclient01     -#from_collapse_limit = 8\nchefclient01     -#join_collapse_limit = 8\t\t# 1 disables collapsing of explicit\nchefclient01     -\t\t\t\t\t# JOIN clauses\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# ERROR REPORTING AND LOGGING\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Where to Log -\nchefclient01     -\nchefclient01     -#log_destination = 'stderr'\t\t# Valid values are combinations of\nchefclient01     -\t\t\t\t\t# stderr, csvlog, syslog and eventlog,\nchefclient01     -\t\t\t\t\t# depending on platform.  csvlog\nchefclient01     -\t\t\t\t\t# requires logging_collector to be on.\nchefclient01     -\nchefclient01     -# This is used when logging to stderr:\nchefclient01     -logging_collector = on\t\t\t# Enable capturing of stderr and csvlog\nchefclient01     -\t\t\t\t\t# into log files. Required to be on for\nchefclient01     -\t\t\t\t\t# csvlogs.\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -# These are only used if logging_collector is on:\nchefclient01     -log_directory = 'pg_log'\t\t# directory where log files are written,\nchefclient01     -\t\t\t\t\t# can be absolute or relative to PGDATA\nchefclient01     -log_filename = 'postgresql-%a.log'\t# log file name pattern,\nchefclient01     -\t\t\t\t\t# can include strftime() escapes\nchefclient01     -log_truncate_on_rotation = on\t\t# If on, an existing log file of the\nchefclient01     -\t\t\t\t\t# same name as the new log file will be\nchefclient01     -\t\t\t\t\t# truncated rather than appended to.\nchefclient01     -\t\t\t\t\t# But such truncation only occurs on\nchefclient01     -\t\t\t\t\t# time-driven rotation, not on restarts\nchefclient01     -\t\t\t\t\t# or size-driven rotation.  Default is\nchefclient01     -\t\t\t\t\t# off, meaning append to existing files\nchefclient01     -\t\t\t\t\t# in all cases.\nchefclient01     -log_rotation_age = 1d\t\t\t# Automatic rotation of logfiles will\nchefclient01     -\t\t\t\t\t# happen after that time.  0 disables.\nchefclient01     -log_rotation_size = 0\t\t\t# Automatic rotation of logfiles will\nchefclient01     -\t\t\t\t\t# happen after that much log output.\nchefclient01     -\t\t\t\t\t# 0 disables.\nchefclient01     -\nchefclient01     -# These are relevant when logging to syslog:\nchefclient01     -#syslog_facility = 'LOCAL0'\nchefclient01     -#syslog_ident = 'postgres'\nchefclient01     -\nchefclient01     -#silent_mode = off\t\t\t# Run server silently.\nchefclient01     -\t\t\t\t\t# DO NOT USE without syslog or\nchefclient01     -\t\t\t\t\t# logging_collector\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -\nchefclient01     -\nchefclient01     -# - When to Log -\nchefclient01     -\nchefclient01     -#client_min_messages = notice\t\t# values in order of decreasing detail:\nchefclient01     -\t\t\t\t\t#   debug5\nchefclient01     -\t\t\t\t\t#   debug4\nchefclient01     -\t\t\t\t\t#   debug3\nchefclient01     -\t\t\t\t\t#   debug2\nchefclient01     -\t\t\t\t\t#   debug1\nchefclient01     -\t\t\t\t\t#   log\nchefclient01     -\t\t\t\t\t#   notice\nchefclient01     -\t\t\t\t\t#   warning\nchefclient01     -\t\t\t\t\t#   error\nchefclient01     -\nchefclient01     -#log_min_messages = warning\t\t# values in order of decreasing detail:\nchefclient01     -\t\t\t\t\t#   debug5\nchefclient01     -\t\t\t\t\t#   debug4\nchefclient01     -\t\t\t\t\t#   debug3\nchefclient01     -\t\t\t\t\t#   debug2\nchefclient01     -\t\t\t\t\t#   debug1\nchefclient01     -\t\t\t\t\t#   info\nchefclient01     -\t\t\t\t\t#   notice\nchefclient01     -\t\t\t\t\t#   warning\nchefclient01     -\t\t\t\t\t#   error\nchefclient01     -\t\t\t\t\t#   log\nchefclient01     -\t\t\t\t\t#   fatal\nchefclient01     -\t\t\t\t\t#   panic\nchefclient01     -\nchefclient01     -#log_error_verbosity = default\t\t# terse, default, or verbose messages\nchefclient01     -\nchefclient01     -#log_min_error_statement = error\t# values in order of decreasing detail:\nchefclient01     -\t\t\t\t \t#   debug5\nchefclient01     -\t\t\t\t\t#   debug4\nchefclient01     -\t\t\t\t\t#   debug3\nchefclient01     -\t\t\t\t\t#   debug2\nchefclient01     -\t\t\t\t\t#   debug1\nchefclient01     -\t\t\t\t \t#   info\nchefclient01     -\t\t\t\t\t#   notice\nchefclient01     -\t\t\t\t\t#   warning\nchefclient01     -\t\t\t\t\t#   error\nchefclient01     -\t\t\t\t\t#   log\nchefclient01     -\t\t\t\t\t#   fatal\nchefclient01     -\t\t\t\t\t#   panic (effectively off)\nchefclient01     -\nchefclient01     -#log_min_duration_statement = -1\t# -1 is disabled, 0 logs all statements\nchefclient01     -\t\t\t\t\t# and their durations, \u003e 0 logs only\nchefclient01     -\t\t\t\t\t# statements running at least this number\nchefclient01     -\t\t\t\t\t# of milliseconds\nchefclient01     -\nchefclient01     -\nchefclient01     -# - What to Log -\nchefclient01     -\nchefclient01     -#debug_print_parse = off\nchefclient01     -#debug_print_rewritten = off\nchefclient01     -#debug_print_plan = off\nchefclient01     -#debug_pretty_print = on\nchefclient01     -#log_checkpoints = off\nchefclient01     -#log_connections = off\nchefclient01     -#log_disconnections = off\nchefclient01     -#log_duration = off\nchefclient01     -#log_hostname = off\nchefclient01     -#log_line_prefix = ''\t\t\t# special values:\nchefclient01     -\t\t\t\t\t#   %u = user name\nchefclient01     -\t\t\t\t\t#   %d = database name\nchefclient01     -\t\t\t\t\t#   %r = remote host and port\nchefclient01     -\t\t\t\t\t#   %h = remote host\nchefclient01     -\t\t\t\t\t#   %p = process ID\nchefclient01     -\t\t\t\t\t#   %t = timestamp without milliseconds\nchefclient01     -\t\t\t\t\t#   %m = timestamp with milliseconds\nchefclient01     -\t\t\t\t\t#   %i = command tag\nchefclient01     -\t\t\t\t\t#   %c = session ID\nchefclient01     -\t\t\t\t\t#   %l = session line number\nchefclient01     -\t\t\t\t\t#   %s = session start timestamp\nchefclient01     -\t\t\t\t\t#   %v = virtual transaction ID\nchefclient01     -\t\t\t\t\t#   %x = transaction ID (0 if none)\nchefclient01     -\t\t\t\t\t#   %q = stop here in non-session\nchefclient01     -\t\t\t\t\t#        processes\nchefclient01     -\t\t\t\t\t#   %% = '%'\nchefclient01     -\t\t\t\t\t# e.g. '\u003c%u%%%d\u003e '\nchefclient01     -#log_lock_waits = off\t\t\t# log lock waits \u003e= deadlock_timeout\nchefclient01     -#log_statement = 'none'\t\t\t# none, ddl, mod, all\nchefclient01     -#log_temp_files = -1\t\t\t# log temporary files equal or larger\nchefclient01     -\t\t\t\t\t# than the specified size in kilobytes;\nchefclient01     -\t\t\t\t\t# -1 disables, 0 logs all temp files\nchefclient01     -#log_timezone = unknown\t\t\t# actually, defaults to TZ environment\nchefclient01     -\t\t\t\t\t# setting\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# RUNTIME STATISTICS\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Query/Index Statistics Collector -\nchefclient01     -\nchefclient01     -#track_activities = on\nchefclient01     -#track_counts = on\nchefclient01     -#track_functions = none\t\t\t# none, pl, all\nchefclient01     -#track_activity_query_size = 1024\nchefclient01     -#update_process_title = on\nchefclient01     -#stats_temp_directory = 'pg_stat_tmp'\nchefclient01     -\nchefclient01     -\nchefclient01     -# - Statistics Monitoring -\nchefclient01     -\nchefclient01     -#log_parser_stats = off\nchefclient01     -#log_planner_stats = off\nchefclient01     -#log_executor_stats = off\nchefclient01     -#log_statement_stats = off\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# AUTOVACUUM PARAMETERS\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -#autovacuum = on\t\t\t# Enable autovacuum subprocess?  'on'\nchefclient01     -\t\t\t\t\t# requires track_counts to also be on.\nchefclient01     -#log_autovacuum_min_duration = -1\t# -1 disables, 0 logs all actions and\nchefclient01     -\t\t\t\t\t# their durations, \u003e 0 logs only\nchefclient01     -\t\t\t\t\t# actions running at least this number\nchefclient01     -\t\t\t\t\t# of milliseconds.\nchefclient01     -#autovacuum_max_workers = 3\t\t# max number of autovacuum subprocesses\nchefclient01     -#autovacuum_naptime = 1min\t\t# time between autovacuum runs\nchefclient01     -#autovacuum_vacuum_threshold = 50\t# min number of row updates before\nchefclient01     -\t\t\t\t\t# vacuum\nchefclient01     -#autovacuum_analyze_threshold = 50\t# min number of row updates before\nchefclient01     -\t\t\t\t\t# analyze\nchefclient01     -#autovacuum_vacuum_scale_factor = 0.2\t# fraction of table size before vacuum\nchefclient01     -#autovacuum_analyze_scale_factor = 0.1\t# fraction of table size before analyze\nchefclient01     -#autovacuum_freeze_max_age = 200000000\t# maximum XID age before forced vacuum\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -#autovacuum_vacuum_cost_delay = 20ms\t# default vacuum cost delay for\nchefclient01     -\t\t\t\t\t# autovacuum, in milliseconds;\nchefclient01     -\t\t\t\t\t# -1 means use vacuum_cost_delay\nchefclient01     -#autovacuum_vacuum_cost_limit = -1\t# default vacuum cost limit for\nchefclient01     -\t\t\t\t\t# autovacuum, -1 means use\nchefclient01     -\t\t\t\t\t# vacuum_cost_limit\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# CLIENT CONNECTION DEFAULTS\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Statement Behavior -\nchefclient01     -\nchefclient01     -#search_path = '\"$user\",public'\t\t# schema names\nchefclient01     -#default_tablespace = ''\t\t# a tablespace name, '' uses the default\nchefclient01     -#temp_tablespaces = ''\t\t\t# a list of tablespace names, '' uses\nchefclient01     -\t\t\t\t\t# only default tablespace\nchefclient01     -#check_function_bodies = on\nchefclient01     -#default_transaction_isolation = 'read committed'\nchefclient01     -#default_transaction_read_only = off\nchefclient01     -#session_replication_role = 'origin'\nchefclient01     -#statement_timeout = 0\t\t\t# in milliseconds, 0 is disabled\nchefclient01     -#vacuum_freeze_min_age = 50000000\nchefclient01     -#vacuum_freeze_table_age = 150000000\nchefclient01     -#xmlbinary = 'base64'\nchefclient01     -#xmloption = 'content'\nchefclient01     -\nchefclient01     -# - Locale and Formatting -\nchefclient01     -\nchefclient01     +data_directory = '/var/lib/pgsql/data'\nchefclient01      datestyle = 'iso, mdy'\nchefclient01     -#intervalstyle = 'postgres'\nchefclient01     -#timezone = unknown\t\t\t# actually, defaults to TZ environment\nchefclient01     -\t\t\t\t\t# setting\nchefclient01     -#timezone_abbreviations = 'Default'     # Select the set of available time zone\nchefclient01     -\t\t\t\t\t# abbreviations.  Currently, there are\nchefclient01     -\t\t\t\t\t#   Default\nchefclient01     -\t\t\t\t\t#   Australia\nchefclient01     -\t\t\t\t\t#   India\nchefclient01     -\t\t\t\t\t# You can create your own file in\nchefclient01     -\t\t\t\t\t# share/timezonesets/.\nchefclient01     -#extra_float_digits = 0\t\t\t# min -15, max 2\nchefclient01     -#client_encoding = sql_ascii\t\t# actually, defaults to database\nchefclient01     -\t\t\t\t\t# encoding\nchefclient01     -\nchefclient01     -# These settings are initialized by initdb, but they can be changed.\nchefclient01     -lc_messages = 'en_US.UTF-8'\t\t\t# locale for system error message\nchefclient01     -\t\t\t\t\t# strings\nchefclient01     -lc_monetary = 'en_US.UTF-8'\t\t\t# locale for monetary formatting\nchefclient01     -lc_numeric = 'en_US.UTF-8'\t\t\t# locale for number formatting\nchefclient01     -lc_time = 'en_US.UTF-8'\t\t\t\t# locale for time formatting\nchefclient01     -\nchefclient01     -# default configuration for text search\nchefclient01      default_text_search_config = 'pg_catalog.english'\nchefclient01     -\nchefclient01     -# - Other Defaults -\nchefclient01     -\nchefclient01     -#dynamic_library_path = '$libdir'\nchefclient01     -#local_preload_libraries = ''\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# LOCK MANAGEMENT\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -#deadlock_timeout = 1s\nchefclient01     -#max_locks_per_transaction = 64\t\t# min 10\nchefclient01     -\t\t\t\t\t# (change requires restart)\nchefclient01     -# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are\nchefclient01     -# max_locks_per_transaction * (max_connections + max_prepared_transactions)\nchefclient01     -# lock table slots.\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# VERSION/PLATFORM COMPATIBILITY\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -# - Previous PostgreSQL Versions -\nchefclient01     -\nchefclient01     -#add_missing_from = off\nchefclient01     -#array_nulls = on\nchefclient01     -#backslash_quote = safe_encoding\t# on, off, or safe_encoding\nchefclient01     -#default_with_oids = off\nchefclient01     -#escape_string_warning = on\nchefclient01     -#regex_flavor = advanced\t\t# advanced, extended, or basic\nchefclient01     -#sql_inheritance = on\nchefclient01     -#standard_conforming_strings = off\nchefclient01     -#synchronize_seqscans = on\nchefclient01     -\nchefclient01     -# - Other Platforms and Clients -\nchefclient01     -\nchefclient01     -#transform_null_equals = off\nchefclient01     -\nchefclient01     -\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -# CUSTOMIZED OPTIONS\nchefclient01     -#------------------------------------------------------------------------------\nchefclient01     -\nchefclient01     -#custom_variable_classes = ''\t\t# list of custom variable class names\nchefclient01     +lc_messages = 'en_US.UTF-8'\nchefclient01     +lc_monetary = 'en_US.UTF-8'\nchefclient01     +lc_numeric = 'en_US.UTF-8'\nchefclient01     +lc_time = 'en_US.UTF-8'\nchefclient01     +listen_addresses = 'localhost'\nchefclient01     +log_directory = 'pg_log'\nchefclient01     +log_filename = 'postgresql-%a.log'\nchefclient01     +log_rotation_age = '1d'\nchefclient01     +log_rotation_size = 0\nchefclient01     +log_truncate_on_rotation = on\nchefclient01     +logging_collector = on\nchefclient01     +max_connections = 100\nchefclient01     +port = 5432\nchefclient01     +shared_buffers = '32MB'\nchefclient01 Recipe: postgresql::server_redhat\nchefclient01   * service[postgresql] action restart\nchefclient01     - restart service service[postgresql]\nchefclient01 Recipe: postgresql::server_conf\nchefclient01   * template[/var/lib/pgsql/data/pg_hba.conf] action create\nchefclient01     - update content in file /var/lib/pgsql/data/pg_hba.conf from dd2143 to 1ac5b0\nchefclient01     --- /var/lib/pgsql/data/pg_hba.conf\t2015-08-16 17:16:39.109389331 +0000\nchefclient01     +++ /tmp/chef-rendered-template20150816-3283-1anj69o\t2015-08-16 17:16:45.791046833 +0000\nchefclient01     @@ -1,75 +1,25 @@\nchefclient01     +# This file was automatically generated and dropped off by Chef!\nchefclient01     +\nchefclient01      # PostgreSQL Client Authentication Configuration File\nchefclient01      # ===================================================\nchefclient01      #\nchefclient01     -# Refer to the \"Client Authentication\" section in the\nchefclient01     -# PostgreSQL documentation for a complete description\nchefclient01     -# of this file.  A short synopsis follows.\nchefclient01     -#\nchefclient01     -# This file controls: which hosts are allowed to connect, how clients\nchefclient01     -# are authenticated, which PostgreSQL user names they can use, which\nchefclient01     -# databases they can access.  Records take one of these forms:\nchefclient01     -#\nchefclient01     -# local      DATABASE  USER  METHOD  [OPTIONS]\nchefclient01     -# host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]\nchefclient01     -# hostssl    DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]\nchefclient01     -# hostnossl  DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTIONS]\nchefclient01     -#\nchefclient01     -# (The uppercase items must be replaced by actual values.)\nchefclient01     -#\nchefclient01     -# The first field is the connection type: \"local\" is a Unix-domain socket,\nchefclient01     -# \"host\" is either a plain or SSL-encrypted TCP/IP socket, \"hostssl\" is an\nchefclient01     -# SSL-encrypted TCP/IP socket, and \"hostnossl\" is a plain TCP/IP socket.\nchefclient01     -#\nchefclient01     -# DATABASE can be \"all\", \"sameuser\", \"samerole\", a database name, or\nchefclient01     -# a comma-separated list thereof.\nchefclient01     -#\nchefclient01     -# USER can be \"all\", a user name, a group name prefixed with \"+\", or\nchefclient01     -# a comma-separated list thereof.  In both the DATABASE and USER fields\nchefclient01     -# you can also write a file name prefixed with \"@\" to include names from\nchefclient01     -# a separate file.\nchefclient01     -#\nchefclient01     -# CIDR-ADDRESS specifies the set of hosts the record matches.\nchefclient01     -# It is made up of an IP address and a CIDR mask that is an integer\nchefclient01     -# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies\nchefclient01     -# the number of significant bits in the mask.  Alternatively, you can write\nchefclient01     -# an IP address and netmask in separate columns to specify the set of hosts.\nchefclient01     -#\nchefclient01     -# METHOD can be \"trust\", \"reject\", \"md5\", \"password\", \"gss\", \"sspi\", \"krb5\",\nchefclient01     -# \"ident\", \"pam\", \"ldap\" or \"cert\".  Note that \"password\" sends passwords\nchefclient01     -# in clear text; \"md5\" is preferred since it sends encrypted passwords.\nchefclient01     -#\nchefclient01     -# OPTIONS are a set of options for the authentication in the format\nchefclient01     -# NAME=VALUE. The available options depend on the different authentication\nchefclient01     -# methods - refer to the \"Client Authentication\" section in the documentation\nchefclient01     -# for a list of which options are available for which authentication methods.\nchefclient01     -#\nchefclient01     -# Database and user names containing spaces, commas, quotes and other special\nchefclient01     -# characters must be quoted. Quoting one of the keywords \"all\", \"sameuser\" or\nchefclient01     -# \"samerole\" makes the name lose its special character, and just match a\nchefclient01     -# database or username with that name.\nchefclient01     -#\nchefclient01     -# This file is read on server startup and when the postmaster receives\nchefclient01     -# a SIGHUP signal.  If you edit the file on a running system, you have\nchefclient01     -# to SIGHUP the postmaster for the changes to take effect.  You can use\nchefclient01     -# \"pg_ctl reload\" to do that.\nchefclient01     +# Refer to the \"Client Authentication\" section in the PostgreSQL\nchefclient01     +# documentation for a complete description of this file.\nchefclient01\nchefclient01     -# Put your actual configuration here\nchefclient01     -# ----------------------------------\nchefclient01     -#\nchefclient01     -# If you want to allow non-local connections, you need to add more\nchefclient01     -# \"host\" records. In that case you will also need to make PostgreSQL listen\nchefclient01     -# on a non-local interface via the listen_addresses configuration parameter,\nchefclient01     -# or via the -i or -h command line switches.\nchefclient01     -#\nchefclient01     +# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD\nchefclient01\nchefclient01     +###########\nchefclient01     +# Other authentication configurations taken from chef node defaults:\nchefclient01     +###########\nchefclient01\nchefclient01     +local   all             postgres                                ident\nchefclient01\nchefclient01     -# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD\nchefclient01     +local   all             all                                     ident\nchefclient01\nchefclient01     +host    all             all             127.0.0.1/32            md5\nchefclient01     +\nchefclient01     +host    all             all             ::1/128                 md5\nchefclient01     +\nchefclient01      # \"local\" is for Unix domain socket connections only\nchefclient01     -local   all         all                               ident\nchefclient01     -# IPv4 local connections:\nchefclient01     -host    all         all         127.0.0.1/32          ident\nchefclient01     -# IPv6 local connections:\nchefclient01     -host    all         all         ::1/128               ident\nchefclient01     +local   all             all                                     ident\nchefclient01 Recipe: postgresql::server_redhat\nchefclient01   * service[postgresql] action restart\nchefclient01     - restart service service[postgresql]\nchefclient01   * service[postgresql] action enable\nchefclient01     - enable service service[postgresql]\nchefclient01   * service[postgresql] action start (up to date)\nchefclient01 Recipe: postgresql::server\nchefclient01   * bash[assign-postgres-password] action run\nchefclient01     - execute \"bash\"  \"/tmp/chef-script20150816-3283-18z0e52\"\nchefclient01 Recipe: postgresql::server_redhat\nchefclient01   * service[postgresql] action restart\nchefclient01     - restart service service[postgresql]\nchefclient01\nchefclient01 Running handlers:\nchefclient01 Running handlers complete\nchefclient01 Chef Client finished, 15/16 resources updated in 39.848145274 seconds\n```\n \nand finally some post install process details, showing my vanilla postgres instance running:\n\n```sh\n[vagrant@chefclient01 chef-repo]$  ps -ef|grep pos\nroot      1493     1  0 16:48 ?        00:00:00 /usr/libexec/postfix/master\npostfix   1500  1493  0 16:48 ?        00:00:00 pickup -l -t fifo -u\npostfix   1501  1493  0 16:48 ?        00:00:00 qmgr -l -t fifo -u\npostgres  4032     1  0 17:16 ?        00:00:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data\npostgres  4034  4032  0 17:16 ?        00:00:00 postgres: logger process\npostgres  4036  4032  0 17:16 ?        00:00:00 postgres: writer process\npostgres  4037  4032  0 17:16 ?        00:00:00 postgres: wal writer process\npostgres  4038  4032  0 17:16 ?        00:00:00 postgres: autovacuum launcher process\npostgres  4039  4032  0 17:16 ?        00:00:00 postgres: stats collector process\nvagrant   4051  2146  0 17:19 pts/0    00:00:00 grep pos\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgapitts%2Fvagrant-chef-client-intro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgapitts%2Fvagrant-chef-client-intro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgapitts%2Fvagrant-chef-client-intro/lists"}