compass-core/install/README.md
Xicheng Chang c946aeb254 Update Readme
Change-Id: I0bdd1808fce344156f2791e38832122a9aad30f0
2015-06-29 11:26:01 -07:00

64 lines
3.9 KiB
Markdown

Install Scripts for Compass
===========================
You can install Compass to a CentOS-6.5/6.6 system by running install scripts.
##Quick steps to install Compass
i. run ```./install.sh```
ii. install.sh will pop up questions to understand your configurations. It will provide default values based on calculated results. For a more detailed explanation of these questions please [visit Compass user doc on Compass official site](http://www.syscompass.org/install.html#step-one). In most cases, using the default values will do the trick
iii. After answering all the questions, install.sh will take over the installation. The whole process may take 30-45 minutes depending on your network latency and the choices you made.
##Files
* ansible.sh - script to install ansible package, called by install.sh.
* chef.sh - script to install and configure chef-server and knife, called by install.sh.
* cobbler.sh - script to install and configure cobbler server, called by install.sh
* compass.sh - script to install and configure compass and its components, called by install.sh
* compass_web.sh - script to setup compass front-end UI and http server for local repositories, called by install.sh
* dependency.sh - script to install all the dependency packages for compass, called by install.sh
* install.conf - conf file that contains all the variables used by all sh files. You can give default values to
variables so that install script will not ask questions. Examples will be given in next section.
* install.conf.template - a template/example for install.conf, this file is used by compass regtest to install compass.
* install_func.sh - contains the common functions for all scripts.
* install.sh - main entrance.
* prepare.sh - script to prepare environments, pre-download ISOs and update services/packages.
* setup_env.sh - script to cache all the user inputs and persist the inputs into an env.conf file for scripts to use.
This makes sure that when somehow the install process is aborted, running each script file separtely still works.
##Example of install.conf variables(for developers)
For example, in install.conf there's no default value set for NIC variable, thus install.sh will ask you to fill in during the script run:
export NIC=${NIC:-}
If you give it a default value, install.sh will take it and skip the question:
export NIC=$(NIC:-eth0}
Now *eth0* will be used by install.sh to answer the question of `Please enter the NIC:` If you wish to contribute to compass and add your own variables for compass install scripts to use, you can simply call `loadvars()` function in `install.sh`:
loadvars foo "bar"
Adding this line to `install.sh` will result in a new question being asked as:
"```Please enter the foo```" and the default value for `foo` is `bar`.
You would also need to add
foo=\${foo:-$foo}
into `setup_env.sh` to make sure the user input value gets persisted into `env.conf`.
##Q&A
Q: I am a new user of Compass and I do not know too much about DevOps. I am not sure how to answer those questions asked by `install.sh`. What should I do?
A: `install.sh` can give default answers based on the calculated results. If you are not sure about your environment, you can just simply follow the default values(press ENTER).
Q: Some questions ask me to provide `Y/N` and won't accept `ENTER` as an answer?
A: Yes those questions are flags for supporting different distributions. If you are not familiar with those distributions, simply answer `Y` to the ones you would like to support. Also answer `Y` to all those questions is not a bad idea.
Q: Installation was aborted for some reason and I do not wish to answer those questions all over again, can I run scripts one by one?
A: Yes, please run the scripts in this order:
`dependency.sh -> prepare.sh -> cobbler.sh -> chef.sh -> ansible.sh -> compass-web.sh -> compass.sh`