diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -31,25 +31,16 @@ # Build targets - repository # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -repo: roles/webserver-content/init.sls \ - roles/webserver-core/nginx/files/ocsp-ca-certs.pem \ +repo: roles/webserver-core/nginx/files/ocsp-ca-certs.pem \ .git/hooks/pre-commit -webserver-content-index: clean-webserver-content-index roles/webserver-content/init.sls - -roles/webserver-content/init.sls: - utils/generate-webcontent-index.py > roles/webserver-content/init.sls - roles/webserver-core/nginx/files/ocsp-ca-certs.pem: utils/generate-ocsp-bundle.sh > roles/webserver-core/nginx/files/ocsp-ca-certs.pem .git/hooks/pre-commit: pre-commit install -clean-webserver-content-index: - ${RM} roles/webserver-content/init.sls - -clean-repo: clean-webserver-content-index +clean-repo: ${RM} .git/hooks/pre-commit ${RM} roles/webserver-core/nginx/files/ocsp-ca-certs.pem diff --git a/_modules/node.py b/_modules/node.py --- a/_modules/node.py +++ b/_modules/node.py @@ -192,10 +192,6 @@ return any(role in DEPLOY_ROLES for role in get_list("roles", nodename)) -def has_web_content(content, nodename=None): - return content in filter_by_role("web_content_sls", nodename) - - def get_wwwroot(nodename=None): """ A function to determine the wwwroot folder to use. diff --git a/_tests/modules/test_node.py b/_tests/modules/test_node.py --- a/_tests/modules/test_node.py +++ b/_tests/modules/test_node.py @@ -23,14 +23,6 @@ self.assertEqual("wwwroot/lothlorien.forest/egladil", node.get_wwwroot()) self.assertEqual("wwwroot/entwash.node/www", node.get_wwwroot("entwash")) - def test_has_web_content(self): - self.assertTrue(node.has_web_content(".ll/carasgaladhon")) - self.assertFalse(node.has_web_content(".arda/onodlo")) - - self.assertTrue(node.has_web_content(".arda/onodlo", "entwash")) - - self.assertFalse(node.has_web_content("notexisting")) - def test_filter_by_role(self): node_key = self.grains["id"] diff --git a/pillar/tower.sls b/pillar/tower.sls --- a/pillar/tower.sls +++ b/pillar/tower.sls @@ -13,3 +13,5 @@ - paas/docker/{{ minion_id }}/*.sls - saas/nextcloud/{{ minion_id }}/*.sls + + - webserver/{{ minion_id }}/*.sls diff --git a/pillar/webserver/dwellers/content.sls b/pillar/webserver/dwellers/content.sls new file mode 100644 --- /dev/null +++ b/pillar/webserver/dwellers/content.sls @@ -0,0 +1,15 @@ +# ------------------------------------------------------------- +# Salt — Sites to provision +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +# ------------------------------------------------------------- +# States +# +# Sites with states documenting how to build them +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +web_content_sls: + - .org/nasqueron/social diff --git a/pillar/webserver/eglide/content.sls b/pillar/webserver/eglide/content.sls new file mode 100644 --- /dev/null +++ b/pillar/webserver/eglide/content.sls @@ -0,0 +1,15 @@ +# ------------------------------------------------------------- +# Salt — Sites to provision +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +# ------------------------------------------------------------- +# States +# +# Sites with states documenting how to build them +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +web_content_sls: + - .org/eglide diff --git a/pillar/webserver/sites.sls b/pillar/webserver/sites.sls --- a/pillar/webserver/sites.sls +++ b/pillar/webserver/sites.sls @@ -5,48 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -# ------------------------------------------------------------- -# States -# -# Sites with states documenting how to build them -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -web_content_sls: - # - # Eglide - # - shellserver: - # Directly managed by Eglide project - - .org/eglide - - # - # Nasqueron servers - # - mastodon: - - .org/nasqueron/social - - webserver-legacy: &legacy_to_migrate_to_alkane - # Nasqueron members - - .be/dereckson - - # Projects hosted - - .space/hypership - - # Directly managed by Nasqueron - - .org/nasqueron/api - - .org/nasqueron/autoconfig - - .org/nasqueron/daeghrefn - - .org/nasqueron/docs - - .org/nasqueron/infra - - .org/nasqueron/labs - - .org/nasqueron/rain - - # Wolfplex Hackerspace - - .org/wolfplex/api - - .org/wolfplex/www - - webserver-alkane: *legacy_to_migrate_to_alkane - # ------------------------------------------------------------- # Sites deployed through Jenkins CD # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/roles/webserver-content/init.sls b/pillar/webserver/web-001/content.sls copy from roles/webserver-content/init.sls copy to pillar/webserver/web-001/content.sls --- a/roles/webserver-content/init.sls +++ b/pillar/webserver/web-001/content.sls @@ -1,18 +1,18 @@ # ------------------------------------------------------------- -# Salt — Webserver content +# Salt — Sites to provision # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Project: Nasqueron # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -# -# <auto-generated> -# This file is auto-generated by running -# `make webserver-content-index`. -# </auto-generated> -include: +web_content_sls: + # Nasqueron members - .be/dereckson - - .org/eglide + + # Projects hosted + - .space/hypership + + # Directly managed by Nasqueron - .org/nasqueron/api - .org/nasqueron/autoconfig - .org/nasqueron/daeghrefn @@ -20,9 +20,7 @@ - .org/nasqueron/infra - .org/nasqueron/labs - .org/nasqueron/rain - - .org/nasqueron/social + + # Wolfplex Hackerspace - .org/wolfplex/api - .org/wolfplex/www - - .space/hypership - - - ._generic diff --git a/pillar/webserver/windriver/content.sls b/pillar/webserver/windriver/content.sls new file mode 100644 --- /dev/null +++ b/pillar/webserver/windriver/content.sls @@ -0,0 +1,14 @@ +# ------------------------------------------------------------- +# Salt — Sites to provision +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +# ------------------------------------------------------------- +# States +# +# Sites with states documenting how to build them +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +web_content_sls: [] diff --git a/roles/webserver-content/README.md b/roles/webserver-content/README.md --- a/roles/webserver-content/README.md +++ b/roles/webserver-content/README.md @@ -28,9 +28,7 @@ 1. Create a new folder hierarchy for the domain 2. Include a `init.sls` file for your subdomains - 3. Declare the new domain in pillar/webserver/sites.sls - 4. Regenerate the role index with `make` (from repository root) - + 3. Declare the new domain in pillar/webserver For example the tld/acme/init.sls file could be: ``` @@ -46,10 +44,7 @@ If you wish to deploy all the sites on one role, you can directly include the folder, and your init.sls will do the rest. -If not, two strategies exist: you can use node.filter_by_role in your -init.sls too or perhaps more simply you can document in init.sls these -roles can't be deployed directly, and make references to sls files in -the pillar (without final .sls extension). +If not, you can list the path to the subdomain file, without the .sls extension. For example to deploy bipbip.acme.tld (`tld/acme/bipbip.sls`) on servers with the shellserver role: diff --git a/roles/webserver-content/be/dereckson/assets.sls b/roles/webserver-content/be/dereckson/assets.sls --- a/roles/webserver-content/be/dereckson/assets.sls +++ b/roles/webserver-content/be/dereckson/assets.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/assets") %} - # ------------------------------------------------------------- # Deploy /opt/staging/wwwroot/d.be/assets to assets.d.be # @@ -25,5 +23,3 @@ - file_mode: 644 - user: dereckson.be - group: web - -{% endif %} diff --git a/roles/webserver-content/init.sls b/roles/webserver-content/init.sls --- a/roles/webserver-content/init.sls +++ b/roles/webserver-content/init.sls @@ -4,25 +4,10 @@ # Project: Nasqueron # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -# -# <auto-generated> -# This file is auto-generated by running -# `make webserver-content-index`. -# </auto-generated> include: - - .be/dereckson - - .org/eglide - - .org/nasqueron/api - - .org/nasqueron/autoconfig - - .org/nasqueron/daeghrefn - - .org/nasqueron/docs - - .org/nasqueron/infra - - .org/nasqueron/labs - - .org/nasqueron/rain - - .org/nasqueron/social - - .org/wolfplex/api - - .org/wolfplex/www - - .space/hypership + {% for state in pillar["web_content_sls"] %} + - {{ state }} + {% endfor %} - ._generic diff --git a/roles/webserver-content/org/eglide/www.sls b/roles/webserver-content/org/eglide/www.sls --- a/roles/webserver-content/org/eglide/www.sls +++ b/roles/webserver-content/org/eglide/www.sls @@ -6,8 +6,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/eglide") %} - # ------------------------------------------------------------- # Deploy /opt/staging/wwwroot/eglide.org/www to www.eglide.org # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/roles/webserver-content/org/nasqueron/api.sls b/roles/webserver-content/org/nasqueron/api.sls --- a/roles/webserver-content/org/nasqueron/api.sls +++ b/roles/webserver-content/org/nasqueron/api.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/api") %} - # ------------------------------------------------------------- # Base part from rOPS # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -65,5 +63,3 @@ - user: web-org-nasqueron-api-serverslog - mode: 644 - replace: False - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/autoconfig.sls b/roles/webserver-content/org/nasqueron/autoconfig.sls --- a/roles/webserver-content/org/nasqueron/autoconfig.sls +++ b/roles/webserver-content/org/nasqueron/autoconfig.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/autoconfig") %} - # ------------------------------------------------------------- # Base directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25,5 +23,3 @@ module.run: - name: jenkins.build_job - m_name: deploy-website-nasqueron-www1-autoconfig - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/daeghrefn.sls b/roles/webserver-content/org/nasqueron/daeghrefn.sls --- a/roles/webserver-content/org/nasqueron/daeghrefn.sls +++ b/roles/webserver-content/org/nasqueron/daeghrefn.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/rain") %} - # ------------------------------------------------------------- # Base directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25,5 +23,3 @@ module.run: - name: jenkins.build_job - m_name: deploy-website-nasqueron-www1-daeghrefn - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/docs.sls b/roles/webserver-content/org/nasqueron/docs.sls --- a/roles/webserver-content/org/nasqueron/docs.sls +++ b/roles/webserver-content/org/nasqueron/docs.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/docs") %} - {% from "map.jinja" import dirs, packages with context %} # ------------------------------------------------------------- @@ -97,5 +95,3 @@ module.run: - name: jenkins.build_job - m_name: docker-registry-api - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/infra.sls b/roles/webserver-content/org/nasqueron/infra.sls --- a/roles/webserver-content/org/nasqueron/infra.sls +++ b/roles/webserver-content/org/nasqueron/infra.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/infra") %} - # ------------------------------------------------------------- # Base directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25,5 +23,3 @@ module.run: - name: jenkins.build_job - m_name: deploy-website-nasqueron-www1-infra - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/labs.sls b/roles/webserver-content/org/nasqueron/labs.sls --- a/roles/webserver-content/org/nasqueron/labs.sls +++ b/roles/webserver-content/org/nasqueron/labs.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/labs") %} - # ------------------------------------------------------------- # Base directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -44,5 +42,3 @@ - file_mode: 644 - clean: False {% endfor %} - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/rain.sls b/roles/webserver-content/org/nasqueron/rain.sls --- a/roles/webserver-content/org/nasqueron/rain.sls +++ b/roles/webserver-content/org/nasqueron/rain.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/rain") %} - # ------------------------------------------------------------- # Base directory # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25,5 +23,3 @@ module.run: - name: jenkins.build_job - m_name: deploy-website-nasqueron-www1-rain - -{% endif %} diff --git a/roles/webserver-content/org/nasqueron/social.sls b/roles/webserver-content/org/nasqueron/social.sls --- a/roles/webserver-content/org/nasqueron/social.sls +++ b/roles/webserver-content/org/nasqueron/social.sls @@ -6,8 +6,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/nasqueron/social") %} - /srv/data/mastodon/public/support: file.recurse: - source: salt://wwwroot/nasqueron.org/mastodon/support @@ -16,5 +14,3 @@ - clean: True - dir_mode: 711 - file_mode: 644 - -{% endif %} diff --git a/roles/webserver-content/org/wolfplex/api.sls b/roles/webserver-content/org/wolfplex/api.sls --- a/roles/webserver-content/org/wolfplex/api.sls +++ b/roles/webserver-content/org/wolfplex/api.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/wolfplex/api") %} - # ------------------------------------------------------------- # Data store # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -56,5 +54,3 @@ - runas: web-org-wolfplex-www - cwd: /var/wwwroot/wolfplex.org/api/design/kibaone/accents - creates: /var/wwwroot/wolfplex.org/api/design/kibaone/accents/index.json - -{% endif %} diff --git a/roles/webserver-content/org/wolfplex/www.sls b/roles/webserver-content/org/wolfplex/www.sls --- a/roles/webserver-content/org/wolfplex/www.sls +++ b/roles/webserver-content/org/wolfplex/www.sls @@ -6,8 +6,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".org/wolfplex/www") %} - /var/wwwroot/wolfplex.org/www/2013: file.recurse: - source: salt://software/wolfplex/web-campaigns-2013 @@ -23,5 +21,3 @@ file.directory: - user: web-org-wolfplex-www - group: web - -{% endif %} diff --git a/roles/webserver-content/space/hypership/www.sls b/roles/webserver-content/space/hypership/www.sls --- a/roles/webserver-content/space/hypership/www.sls +++ b/roles/webserver-content/space/hypership/www.sls @@ -5,8 +5,6 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- -{% if salt['node.has_web_content'](".space/hypership") %} - /var/dataroot/zed: file.directory: - user: deploy @@ -64,5 +62,3 @@ file.directory: - user: web-space-hypership-www {% endfor %} - -{% endif %}