Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ansible intro, wishlist and bugs #172

Closed
3 of 29 tasks
traumschule opened this issue Nov 10, 2017 · 1 comment
Closed
3 of 29 tasks

Ansible intro, wishlist and bugs #172

traumschule opened this issue Nov 10, 2017 · 1 comment
Assignees

Comments

@traumschule
Copy link

traumschule commented Nov 10, 2017

Since November 2017 we use ansible to test and deploy Hitchwiki. It can provision a local vagrant box or deploy to a remote server. Feel free to subscribe and add reports related to our ansible playbooks!

  • HW master: Build Status
  • master: Build Status
  • ansible: Build Status
  • testing: Build Status

Test it!

git clone https://github.com/traumschule/hitchwiki -b testing
./scripts/vagrant/install.sh
./scripts/deploy_remote.sh HOST

For details see INSTALL.md and ansible/README.md.

See it live on beta.hitchwiki.org (experimental: 6pna4byhdcdyprdc.onion)

Workflow

feature -> testing -> ansible -> HW master -> production

  • feature branches should rebase testing, if test with travis and vagrant succeed, they are merged
  • testing: runs CI build tests for added latest features (test latest features and make sure all methods install before merging into ansible)
  • ansible: to be run with vagrant (development)
  • master: (to be) synced with current HW master branch
  • beta: beta.hitchwiki.orgis deployed from testing or ansible branch
  • production: hitchwiki.org has it's own repository and is updated after some time when beta looks stable enough

To be merged into ansible branch

In progress

Tasks for HWv3: project roadmap, upcoming: #136 HW gathering in Berlin

development is currently stalled because of a bug in vagrant

Would be nice

scripts/configs/settings-example.yaml
scripts/configs/parsoid_config.yaml
scripts/ansible/roles/discourse/tasks/main.yml
scripts/ansible/roles/hitchwiki/tasks/domain.yml
scripts/ansible/roles/hitchwiki/tasks/mediawiki.yml
scripts/ansible/roles/hitchwiki/tasks/dev.yml
scripts/ansible/roles/hitchwiki/tasks/tls.yml
scripts/ansible/roles/hitchwiki/tasks/letsencrypt.yml
scripts/ansible/roles/hitchwiki/tasks/tls_selfsigned.yml
scripts/ansible/roles/status/tasks/main.yml

  • HW dump import
  • honor dev: beta as a pre-step towards production with TLS and maildev enabled

Security and stability

  • use ssh jail for deployment via travis
  • check why secure db settings for production lock us out of the dbserver
  • MW maps hack: scripts/ansible/roles/hitchwiki/tasks/mediawiki.yml: # TODO: any solution that is cleaner than this temporary dirty hack..
  • explain ignore_errors: yes: run rgrep 'ignore_errors: yes'and check that every line has a comment with a good explanation
  • [-] use vault for passwords, restructure variable tree as encrypted passwords are not visible to php (maybe db settings for production)

TLS

Strict-Transport-Security | HTTP Strict Transport Security is an excellent feature to support on your site and strengthens your implementation of TLS by getting the User Agent to enforce the use of HTTPS. Recommended value "strict-transport-security: max-age=31536000; includeSubDomains".
Content Security Policy is an effective measure to protect your site from XSS attacks. By whitelisting sources of approved content, you can prevent the browser from loading malicious assets.
X-XSS-Protection sets the configuration for the cross-site scripting filter built into most browsers. Recommended value "X-XSS-Protection: 1; mode=block".
Referrer Policy is a new header that allows a site to control how much information the browser includes with navigations away from a document and should be set by all sites.

Tests

Later / low priority

  • figure out why cached facts are not loaded automatically when stored in /etc/ansible/facts.d/file.yml
  • we can switch from spyc to symfony (both are already implemented. it's merely a performance decision, see "Load Hitchwiki Config" in mediawiki.php), affected files:
    • mediawiki.php`
    • status.sh
    • hitchwiki/tasks/main.yml
    • system.yml
    • composer.json
    • mw-postgres: discourse needs postgres, to save ram it might be worth to use postgres for MW as well
    • nginx: is nginx an option and what would be the benefits?

Future OS

  • currently xenial is LTS stable, to change later, uncomment other versions in .travis on a new branch and check if they build with travis
  • check why php-apcu is not in ubuntu artful
  • use package module if we deploy to non-debian derived systems (probably won't happen)
@traumschule traumschule changed the title ansible wishlist + bugs Ansible intro, wishlist and bugs Nov 12, 2017
@guaka guaka mentioned this issue Jul 21, 2019
22 tasks
@guaka
Copy link
Contributor

guaka commented Jul 21, 2019

see #186

@guaka guaka closed this as completed Jul 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants