DOCUMENTATION.rst 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. ===================================================
  2. Initialization and installation structure and usage
  3. ===================================================
  4. ***************************************
  5. Installation and uninstallation process
  6. ***************************************
  7. Init install
  8. ============
  9. All items are installed to /opt/HPCCSystems by default (can be changed at configure time).
  10. Part of the install copies files to /etc/HPCCSystems. This process will not replace files
  11. currently in the directory. It will replace files in /etc/HPCCSystems/rpmnew.
  12. Symlinks are installed in /usr/bin pointing to common command-line utilities in /opt/HPCCSystems,
  13. and in /etc/init.d pointing to initialization scripts
  14. Install process internals
  15. =========================
  16. The install-init process makes use of 3 bash functions along with the hpcc_common functions.
  17. *installConfs*
  18. Used to copy config files into place if they do not exist. It will not replacean existing file.
  19. *installFile*
  20. Copies a file from one location to another. This will replace an existing file and also has
  21. an option to create as a symlink instead of copying.
  22. *fileCheck*
  23. Used to check for ssh keys for the hpcc user along with warning the user if we
  24. are installing or they are still using (upgrade) our publicly provided ssh keys.
  25. Most install procedures are handled in install-init directly, but install-init also supports
  26. sub-installs using install files that are placed in /opt/HPCCSystems/etc/init.d/install/
  27. The final steps of the install are to set permissions correctly for the hpcc user, along with
  28. calling add_conf_settings.sh to add the limits.conf changes.
  29. Init uninstall
  30. ==============
  31. This removes all symlinks created during the install process. This also supports sub-installs
  32. using uninstall files that are placed in /opt/HPCCSystems/etc/init.d/uninstall/
  33. ********************************
  34. Directory structure of initfiles
  35. ********************************
  36. - initfiles/ - Directory containing init and install based code
  37. - CMakeLists.txt - initfiles cmake file which defines GENERATE_BASH macro
  38. - bash-vars.in - cmake template file for bash configuration variables that are injected into all installed bash scripts
  39. - processor.cpp - simple application used at build time to search and replace ###<REPLACE>### in bash scripts
  40. - sbin/ - Directory containing administration based scripts
  41. - add_conf_settings.sh.in - used to add limits.conf settings on package install
  42. - alter_confs.sh - contains functions used by add_conf_settings.sh.in and rm_conf_settings.sh.in
  43. - complete-uninstall.sh.in - script to remove package and all directories from platform
  44. - configmgr.in - configmgr start script
  45. - hpcc-push.sh.in - script to push files to servers defined in environment using ssh keys
  46. - hpcc-run.sh.in - script to run init commands on servers defined in environment using ssh keys
  47. - hpcc_setenv.in - source-able file that defines hpcc env vars, used by init system
  48. - install-cluster.sh.in - script to install platform on a cluster using environment file and expect
  49. - keygen.sh.in - script to generate ssh keys for hpcc user
  50. - killconfigmgr - script used to kill configmgr when running (used by configmgr start script)
  51. - prerm.in - script run pre-remove of the installed DEB or RPM
  52. - regex.awk.in.cmake - regex awk code used by configmgr
  53. - remote-install-engine.sh.in - payload install script used by install-cluster.sh
  54. - rm_conf_settings.sh.in - remove limits.conf settings on package uninstall
  55. - etc/
  56. - bash_completion/ - contains bash completion scripts used by the bash shell
  57. - ecl - ecl cmd completion
  58. - eclagent - eclagent cmd completion
  59. - eclcc - eclcc cmd completion
  60. - eclplus - eclplus cmd completion
  61. - DIR_NAME/ - Directory used to generate /etc/<DIR_NAME> on package install (name is important)
  62. - environment.conf.in - environment.conf template
  63. - environment.xml.in - all in one single node template
  64. - genenvrules.conf - environment generation rules used by config wizard
  65. - version.in - version file template used by configmgr and esp
  66. - configmgr/ - Directory containing configmgr based configs
  67. - configmgr.conf.in - configmgr config file
  68. - esp.xml.in - esp config used to start the configmgr esp process
  69. - sshkey/ - contains base ssh keys included in platform packages
  70. - .ssh.md5 - md5 sums of .ssh dir allowing for comparision at platform start/stop for security check
  71. - .ssh/ - directory containing key files
  72. - authorized_keys - file containing keys for hpcc that can be used for auth
  73. - id_rsa - private ssh key
  74. - id_rsa.pub - public ssh key
  75. - bin/ - Directory containing the scripts used to start and stop component processes
  76. - componentfiles/ - Directory containing subdirectories of things used by other components/installed items
  77. - configxml - files used by configmgr
  78. - ftslave - files used by ftslace
  79. - launcher - files used by the unity launcher
  80. - thor - files used by thor
  81. - bash/
  82. - etc/
  83. - init.d/
  84. - dafilesrv.in - dafilesrv init script
  85. - export-path
  86. - hpcc_common.in - common functions for hpcc scripts
  87. - hpcc-init.in - hpcc-init init script
  88. - hpcc-init.install - hpcc-init install script used by package install
  89. - hpcc-init.uninstall - hpcc-init uninstall script used by package uninstall
  90. - init-functions - common functions related completely to init
  91. - install-init.in - script used to install hpcc init system on package install
  92. - lock.sh - common functions related to lock files
  93. - lsb-base-logging.sh - common functions related to logging to terminal
  94. - pid.sh - common functions related to pid files
  95. - uninstall-init.in - script used to uninstall hpcc init system on package uninstall
  96. - sbin/ - Directory containing bash based package install sripts
  97. - bash_postinst.in - post install used by RPM package
  98. - deb/ - Directory containing DEB specific scripts
  99. - postinst.in - post install used by DEB package
  100. - postrm.in - post remove used by DEB package