Saltstack Official Nginx Formula
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

221 Zeilen
8.0KB

  1. {% macro sls_block(dict) %}
  2. {% for key, value in dict.items() %}
  3. - {{ key }}: {{ value|json(sort_keys=False) }}
  4. {% endfor %}
  5. {% endmacro %}
  6. {% set nginx = salt['pillar.get']('nginx', {
  7. 'lookup': salt['grains.filter_by']({
  8. 'Debian': {
  9. 'package': 'nginx',
  10. 'passenger_package': 'passenger',
  11. 'passenger_config_file': '/etc/nginx/conf.d/mod-http-passenger.conf',
  12. 'service': 'nginx',
  13. 'webuser': 'www-data',
  14. 'conf_file': '/etc/nginx/nginx.conf',
  15. 'server_available': '/etc/nginx/sites-available',
  16. 'server_enabled': '/etc/nginx/sites-enabled',
  17. 'snippets_dir': '/etc/nginx/snippets',
  18. 'streams_dir': '/etc/nginx/streams',
  19. 'server_use_symlink': True,
  20. 'pid_file': '/run/nginx.pid',
  21. 'openssl_package': 'openssl',
  22. 'package_repo_keyring': '/usr/share/keyrings/nginx-archive-keyring.gpg',
  23. 'passenger_package_repo_keyring': '/usr/share/keyrings/phusionpassenger-archive-keyring.gpg',
  24. },
  25. 'CentOS': {
  26. 'package': 'nginx',
  27. 'passenger_package': 'passenger',
  28. 'passenger_config_file': '/etc/nginx/conf.d/passenger.conf',
  29. 'service': 'nginx',
  30. 'webuser': 'nginx',
  31. 'conf_file': '/etc/nginx/nginx.conf',
  32. 'server_available': '/etc/nginx/conf.d',
  33. 'server_enabled': '/etc/nginx/conf.d',
  34. 'snippets_dir': '/etc/nginx/snippets',
  35. 'streams_dir': '/etc/nginx/streams',
  36. 'server_use_symlink': False,
  37. 'pid_file': '/run/nginx.pid',
  38. 'rh_os_releasever': '$releasever',
  39. 'gpg_check': False,
  40. 'gpg_key': 'http://nginx.org/keys/nginx_signing.key',
  41. 'openssl_package': 'openssl',
  42. },
  43. 'RedHat': {
  44. 'package': 'nginx',
  45. 'passenger_package': 'passenger',
  46. 'passenger_config_file': '/etc/nginx/conf.d/passenger.conf',
  47. 'service': 'nginx',
  48. 'webuser': 'nginx',
  49. 'conf_file': '/etc/nginx/nginx.conf',
  50. 'server_available': '/etc/nginx/conf.d',
  51. 'server_enabled': '/etc/nginx/conf.d',
  52. 'snippets_dir': '/etc/nginx/snippets',
  53. 'streams_dir': '/etc/nginx/streams',
  54. 'server_use_symlink': False,
  55. 'pid_file': '/run/nginx.pid',
  56. 'rh_os_releasever': '$releasever',
  57. 'gpg_check': False,
  58. 'gpg_key': 'http://nginx.org/keys/nginx_signing.key',
  59. 'passenger': {
  60. 'passenger_root': '/usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini',
  61. 'passenger_instance_registry_dir': ' /var/run/passenger-instreg',
  62. 'passenger_ruby': '/usr/bin/ruby',
  63. },
  64. 'openssl_package': 'openssl',
  65. },
  66. 'Suse': {
  67. 'package': 'nginx',
  68. 'service': 'nginx',
  69. 'webuser': 'nginx',
  70. 'conf_file': '/etc/nginx/nginx.conf',
  71. 'server_available': '/etc/nginx/vhosts.d',
  72. 'server_enabled': '/etc/nginx/vhosts.d',
  73. 'snippets_dir': '/etc/nginx/snippets',
  74. 'streams_dir': '/etc/nginx/streams',
  75. 'server_use_symlink': False,
  76. 'pid_file': '/run/nginx.pid',
  77. 'gpg_check': True,
  78. 'gpg_key': 'http://download.opensuse.org/repositories/server:/http/{{ grains.osrelease }}/repodata/repomd.xml.key',
  79. 'gpg_autoimport': True,
  80. 'openssl_package': 'openssl',
  81. },
  82. 'Arch': {
  83. 'package': 'nginx',
  84. 'service': 'nginx',
  85. 'webuser': 'http',
  86. 'conf_file': '/etc/nginx/nginx.conf',
  87. 'server_available': '/etc/nginx/sites-available',
  88. 'server_enabled': '/etc/nginx/sites-enabled',
  89. 'snippets_dir': '/etc/nginx/snippets',
  90. 'streams_dir': '/etc/nginx/streams',
  91. 'server_use_symlink': True,
  92. 'openssl_package': 'openssl',
  93. },
  94. 'Gentoo': {
  95. 'package': 'www-servers/nginx',
  96. 'service': 'nginx',
  97. 'webuser': 'nginx',
  98. 'conf_file': '/etc/nginx/nginx.conf',
  99. 'server_available': '/etc/nginx/sites-available',
  100. 'server_enabled': '/etc/nginx/sites-enabled',
  101. 'snippets_dir': '/etc/nginx/snippets',
  102. 'streams_dir': '/etc/nginx/streams',
  103. 'server_use_symlink': True,
  104. 'openssl_package': 'dev-libs/openssl',
  105. },
  106. 'FreeBSD': {
  107. 'package': 'nginx',
  108. 'passenger_package': 'passenger',
  109. 'service': 'nginx',
  110. 'webuser': 'www',
  111. 'conf_file': '/usr/local/etc/nginx/nginx.conf',
  112. 'server_available': '/usr/local/etc/nginx/sites-available',
  113. 'server_enabled': '/usr/local/etc/nginx/sites-enabled',
  114. 'snippets_dir': '/usr/local/etc/nginx/snippets',
  115. 'streams_dir': '/usr/local/etc/nginx/streams',
  116. 'server_use_symlink': True,
  117. 'openssl_package': 'openssl',
  118. 'pid_file': '/var/run/nginx.pid',
  119. },
  120. }, default='Debian' ),
  121. 'install_from_source': False,
  122. 'install_from_ppa': False,
  123. 'install_from_repo': False,
  124. 'install_from_phusionpassenger': False,
  125. 'install_from_opensuse_devel': False,
  126. 'check_config_before_apply': False,
  127. 'ppa_version': 'stable',
  128. 'source_version': '1.10.0',
  129. 'source_hash': '8ed647c3dd65bc4ced03b0e0f6bf9e633eff6b01bac772bcf97077d58bc2be4d',
  130. 'source': {
  131. 'opts': {},
  132. },
  133. 'package': {
  134. 'opts': {
  135. 'refresh': True,
  136. },
  137. },
  138. 'service': {
  139. 'enable': True,
  140. 'opts': {},
  141. },
  142. 'server': {
  143. 'opts': {},
  144. 'config': {
  145. 'worker_processes': 'auto',
  146. 'events': {
  147. 'worker_connections': 512,
  148. },
  149. 'stream' : {
  150. 'include': '/etc/nginx/streams/*',
  151. },
  152. 'http': {
  153. 'sendfile': 'on',
  154. 'tcp_nopush': 'on',
  155. 'tcp_nodelay': 'on',
  156. 'keepalive_timeout': '65',
  157. 'types_hash_max_size': '2048',
  158. 'default_type': 'application/octet-stream',
  159. 'access_log': '/var/log/nginx/access.log',
  160. 'error_log': '/var/log/nginx/error.log',
  161. 'gzip': 'off',
  162. 'gzip_disable': '"msie6"',
  163. 'include': [
  164. 'mime.types',
  165. 'conf.d/*.conf',
  166. 'sites-enabled/*',
  167. ],
  168. },
  169. },
  170. },
  171. 'servers': {
  172. 'disabled_postfix': '.disabled',
  173. 'symlink_opts': {},
  174. 'rename_opts': {},
  175. 'managed_opts': {
  176. 'makedirs': True,
  177. },
  178. 'dir_opts': {
  179. 'makedirs': True,
  180. },
  181. 'managed': {},
  182. 'purge_servers_config': False,
  183. },
  184. 'passenger': {
  185. 'passenger_root': '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini',
  186. 'passenger_ruby': '/usr/bin/ruby',
  187. },
  188. }, merge=True) %}
  189. {% if 'user' not in nginx.server.config %}
  190. {% do nginx.server.config.update({
  191. 'user': nginx.lookup.webuser,
  192. }) %}
  193. {% endif %}
  194. {% if 'pid' not in nginx.server.config and 'pid_file' in nginx.lookup %}
  195. {% do nginx.server.config.update({
  196. 'pid': nginx.lookup.pid_file,
  197. }) %}
  198. {% endif %}
  199. {% if salt['grains.get']('os_family') == 'RedHat' %}
  200. {% do nginx.passenger.update({
  201. 'passenger_root': '/usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini',
  202. 'passenger_instance_registry_dir': '/var/run/passenger-instreg',
  203. }) %}
  204. {% if 'osfinger' in grains and salt['grains.get']('osfinger') == 'CentOS-6' %}
  205. {% do nginx.server.config.update({
  206. 'pid': '/var/run/nginx.pid',
  207. }) %}
  208. {% do nginx.passenger.update({
  209. 'passenger_root': '/usr/lib/ruby/1.8/phusion_passenger/locations.ini',
  210. }) %}
  211. {% endif %}
  212. {% endif %}
  213. {% if salt['grains.get']('os_family') == 'FreeBSD' %}
  214. {% do nginx.server.config.stream.update({'include' : nginx.lookup.streams_dir ~ '/*'}) %}
  215. {% endif %}