diff --git a/README.md b/README.md index da9049e..4579eaf 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,111 @@ -# chef-services +# Context + +The repo, Chef-Services, will become the recommended way to install both the Open Source and commercial Chef Products. +It provides full automation of the install. +It works both behind the firewall on pre-provisioned machines and out on the internet. +It is a work in progress. + +For provisioning: +* It will set up today in any environment where the machines are already provisioned, including VMware. +* Server provisioning is presently out of scope from this repository. Just supply IP addresses. +* this is covered in https://github.com/echohack/tf_chef_automate + * it supports the provisioning step today only on AWS + * features include private networking and basic security: see the repo for details. +* In the future it will provision other computing resources using Terraform + * this is not yet supported. https://github.com/stephenlauck/chef-services/issues/44 +* If you are creating machines manually: + * the following are suggested names, sizes and O/S: + * chef-server 2g Centos-7 + * automate 2g Centos-7 + * build-node 2g Centos-7 + * supermarket 2g Centos-7 + * compliance 2g Centos-7 + * Make a note of the names / IP addresses, these become parameters to installer.sh: ``` -kitchen list -kitchen converge +installer.sh \ +-c|--chef-server-fqdn REQUIRED: The FQDN you want the Chef Server configured to use. +-a|--chef-automate-fqdn The FQDN of the Chef Automate server. +-b|--build-node-fqdn The FQDN of the build node. ``` -### Sets up: + * (See Installer.sh for more options) -1. chef-server -4. automate -5. build-node -3. supermarket -6. compliance +## Objectives +* This suite is for people that want a full set of Commercial products for Chef. +* This installs: + * Chef Server, + * Chef Supermarket + * Chef Automate (Workflow, Visibility and Compliance) -### Add this to your local workstation /etc/hosts +## Product Maturity +* This in active test on some large customer sites. +* It is still considered preproduction and needs hand-holding to install +## Environments +* Presently works on Ubuntu 14, Centos 6 & 7. +* Some issues on Ubuntu 16. + +## Installation + +You perform the installation from a Chef Server. It will either provision and use or just use the other machines in the /etc/hosts file. +Chef Server itself does not have to (but can) be installed prior to running + +## Pre-requisites +list the things I need to have / know before starting +* You must be prepared to run Chef Server for controlling your nodes (no Chef Solo) +* It must be a Chef 12 server +* An accessible domain (assumed ".services.com") must be in a DNS server reachable by the servers +* All servers need access via the ssh keys held on the Chef Server server + +## Manual Preparation +list the things I need to do before +* change .services.com in (which?) files +* plan IP addresses for the VMs used for the services + +## How to install +* what do I log into + * ``ssh your-empty-chef-server`` +* what do I clone + * ``git clone https://github.com/stephenlauck/chef-services.git`` +* preparation +Set up your /etc/hosts file +* what do I run + * ``kitchen create 72`` + +For the scenario you described where you have 3-5 existing machines, you could use the one liner + +``curl -O https://raw.githubusercontent.com/stephenlauck/chef-services/master/files/default/installer.sh && sudo bash ./installer.sh -c 33.33.33.10 -a 33.33.33.11 -b 33.33.33.12 -u vagrant -p vagrant`` + +executed on whatever machine you want to be the chef server, and give the inputs of the FQDN or IP of the other machines and the user/pass for the root user + +## Troubleshooting +- known issues +- order of things to check +- how to ask for help + +### Testing and Development +See TESTING.md + +?? It's not clear if these are only for development and testing ``` -33.33.33.10 chef.services.com -33.33.33.11 automate.services.com -33.33.33.12 build.services.com -33.33.33.13 supermarket.services.com -33.33.33.14 compliance.services.com +kitchen list - shows AWS nodes +kitchen converge - see TESTING.md ``` -#### Login to chef-server + + + +#### Example Output + +`` blah blah `` + +## Success! + +You can now login to the Chef services with the details shown below. + +## Next Steps +* Change passwords. +* Enjoy + ##### user/password: delivery/delivery [http://chef.services.com](http://chef.services.com) @@ -47,6 +131,4 @@ kitchen converge `ssh vagrant@33.33.33.10 "sudo /tmp/installer.sh -c 33.33.33.10"` -or -`curl -O https://raw.githubusercontent.com/stephenlauck/chef-services/master/files/default/installer.sh && sudo bash ./installer.sh -c 33.33.33.10 -a 33.33.33.11 -b 33.33.33.12 -u vagrant -p vagrant` diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..95a35e3 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,22 @@ +### Sets up: + +kitchen converge - does what?? + +1. chef-server +4. automate +5. build-node +3. supermarket +6. compliance + +## Process + +If you don't have DNS pointing to the computing resources. +### Add this to your local workstation /etc/hosts + +``` +33.33.33.10 chef.services.com +33.33.33.11 automate.services.com +33.33.33.12 build.services.com +33.33.33.13 supermarket.services.com +33.33.33.14 compliance.services.com +```