From 23c6bb4bd313ea9454862942496d52bb8b1af676 Mon Sep 17 00:00:00 2001 From: les Date: Wed, 11 Nov 2020 11:32:29 +0100 Subject: [PATCH] daje --- README.md | 26 ++++---- ansible.cfg | 9 +++ assets/Dockerfile | 60 ------------------- assets/etherpad/iframe_editor.css | 3 +- dev/README.md | 15 +++++ infra.yml | 30 ++-------- inventory.yml | 8 +-- roles/stable/etherpad/defaults/main.yml | 3 +- .../etherpad/templates/settings.json.j2 | 12 ++-- tests/assets | 1 - tests/etherpad-playbook.yml | 32 ---------- tests/goploader.yml | 9 --- tests/infra.yml | 12 ---- tests/inventory.yml | 7 --- tests/roles | 1 - tests/up1.playbook.yml | 10 ---- vars/etherpad.yml | 27 +++++++++ 17 files changed, 79 insertions(+), 186 deletions(-) create mode 100644 ansible.cfg delete mode 100644 assets/Dockerfile create mode 100644 dev/README.md delete mode 120000 tests/assets delete mode 100644 tests/etherpad-playbook.yml delete mode 100644 tests/goploader.yml delete mode 100644 tests/infra.yml delete mode 100644 tests/inventory.yml delete mode 120000 tests/roles delete mode 100644 tests/up1.playbook.yml create mode 100644 vars/etherpad.yml diff --git a/README.md b/README.md index 18ae479..9162e37 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,15 @@ # silicone - Un angolo ragionato per facilitare la messa in opera di servizi autogestiti di prossimità + +## Come si usa +Si imposta il proprio inventory (inventory.yml) e il proprio playbook +(infra.yml) + - -## Appunti -Puntando alla semplificazione la maggior parte delle scelte le dobbiamo fare qui. - -Ci sono due setup possibili: -- si vuole uno e un solo servizio per macchina (vps) -- una macchina gestisce piu' servizi - -Quello che cambia è che nel primo caso nginx (per i servizi web) e' interno, nell'altro -caso e' esterno. - -## Ansible +## Password +Per le password si usa pass, il path usato e' specificato nell'inventory -## Scrivere nuovi ruoli o testare configurazioni diverse -Usiamo vagrant dentro `/dev` - +## Creare nuovi ruoli: +Ci sono varie possibilità, si può usare docker o vagrant, sono dentro +`dev/`, per docker c'e' un README.md diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..18dc13f --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,9 @@ + +[defaults] +inventory = ./inventory.yml +interpreter_python = /usr/bin/python3 +remote_user = root + + +[ssh_connection] +scp_if_ssh=True diff --git a/assets/Dockerfile b/assets/Dockerfile deleted file mode 100644 index 60c6ed2..0000000 --- a/assets/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -# Etherpad Lite Dockerfile -# -# https://github.com/ether/etherpad-lite -# -# Author: muxator - -FROM node:10-buster-slim -LABEL maintainer="Etherpad team, https://github.com/ether/etherpad-lite" - -# plugins to install while building the container. By default no plugins are -# installed. -# If given a value, it has to be a space-separated, quoted list of plugin names. -# -# EXAMPLE: -# ETHERPAD_PLUGINS="ep_codepad ep_author_neat" -ARG ETHERPAD_PLUGINS="ep_adminpads2 ep_align ep_comments_page ep_headings2 ep_markdown ep_table_of_contents ep_delete_after_delay_lite" - -# By default, Etherpad container is built and run in "production" mode. This is -# leaner (development dependencies are not installed) and runs faster (among -# other things, assets are minified & compressed). -ENV NODE_ENV=production - -# Follow the principle of least privilege: run as unprivileged user. -# -# Running as non-root enables running this image in platforms like OpenShift -# that do not allow images running as root. -RUN useradd --uid 5001 --create-home etherpad - -RUN mkdir /opt/etherpad-lite && chown etherpad:0 /opt/etherpad-lite - -USER etherpad - -WORKDIR /opt/etherpad-lite - -COPY --chown=etherpad:0 ./ ./ - -# install node dependencies for Etherpad -RUN bin/installDeps.sh && \ - rm -rf ~/.npm/_cacache - -# Install the plugins, if ETHERPAD_PLUGINS is not empty. -# -# Bash trick: in the for loop ${ETHERPAD_PLUGINS} is NOT quoted, in order to be -# able to split at spaces. -RUN for PLUGIN_NAME in ${ETHERPAD_PLUGINS}; do npm install "${PLUGIN_NAME}"; done - -# Copy the configuration file. -COPY --chown=etherpad:0 ./settings.json.docker /opt/etherpad-lite/settings.json - -# Fix permissions for root group -RUN chmod -R g=u . -COPY --chown=etherpad:0 assets/index.css /opt/etherpad-lite/src/static/skins/colibris/ -COPY --chown=etherpad:0 assets/fond.jpg /opt/etherpad-lite/src/static/skins/colibris/images/ -COPY --chown=etherpad:0 assets/logo.png /opt/etherpad-lite/src/static/skins/colibris/images/ -COPY --chown=etherpad:0 assets/index.html /opt/etherpad-lite/src/templates/ -COPY --chown=etherpad:0 assets/index.js /opt/etherpad-lite/src/static/skins/colibris/ -COPY --chown=etherpad:0 assets/iframe_editor.css /opt/etherpad-lite/src/static/css/ - -EXPOSE 9001 -CMD ["node", "node_modules/ep_etherpad-lite/node/server.js"] diff --git a/assets/etherpad/iframe_editor.css b/assets/etherpad/iframe_editor.css index ea16977..957b1b2 100644 --- a/assets/etherpad/iframe_editor.css +++ b/assets/etherpad/iframe_editor.css @@ -30,6 +30,7 @@ html.inner-editor { padding: 10px; overflow: hidden; background-color: white; + line-height: 25px; /* Be careful editing following rules. Longs words should not overflow, ep_align justify should work, Test on chrome, firefox and safari... Copy / Paste a word inside a sentence should not add line-breaks @@ -139,4 +140,4 @@ body.mozilla, body.safari { } body.grayedout { background-color: #eee !important -} \ No newline at end of file +} diff --git a/dev/README.md b/dev/README.md new file mode 100644 index 0000000..9b34fb0 --- /dev/null +++ b/dev/README.md @@ -0,0 +1,15 @@ +# only once +docker network create --subnet=172.172.0.0/16 silicone +docker build -t silicone:base . + +# for each service to test +# create a container with static ip +docker run --name etherpad -d --net silicone --ip 172.172.0.2 -it silicone:base + +# copy your ssh key +docker cp ~/.ssh/id_rsa.pub etherpad:/root/.ssh/authorized_keys +docker exec -it etherpad chown root.root /root/.ssh/authorized_keys + + +# then you can go with ansible using 172.172.0.2 as your host inside + inventory diff --git a/infra.yml b/infra.yml index a217dee..ff605f4 100644 --- a/infra.yml +++ b/infra.yml @@ -1,32 +1,10 @@ --- -- name: "Etherpad" +## ETHERPAD +- name: Etherpad hosts: paddone roles: - role: stable/common - role: stable/etherpad - vars: - title: "Pad@cisti" - pad_lang: "it-IT" - pad_default_text: | - Sei su pad.cisti.org! Qui potrai usare usare PAD. - Un PAD è uno strumento di scrittura collaborativa per scrivere testi, comunicati o quello che vuoi assieme ad altre persone! - Questo è uno dei servizi di cisti.org, fuori dalle logiche del profitto e del capitalismo, dietro ci sono un gruppo di persone volontarie che si responsabilizzano a mantenere in piedi tutto questo. - - ALCUNE COSE DA SAPERE: - - Per iniziare cancella tutto questo testo e inizia a scrivere! - - Ogni pad può essere modificato da CHIUNQUE sia in possesso del sito (URL) o che possa indovinarlo facilmente, quindi scegli bene il nome del pad che vuoi creare! - - Questo pad verrà eliminato automaticamente dopo 60 giorni di inattività - - Una volta cancellato un pad NON ci sono modi di recuperarlo! - - Questo pad ci tiene così tanto alla privacy che non sappiamo neanche chi sei, rispetta l'anonimato e usalo bene. - - - - made with ❤ by underscore_to hacklab - override_files: - - index.css: /srv/etherpad/etherpad/src/static/skins/colibris/ - - fond.jpg: /srv/etherpad/etherpad/src/static/skins/colibris/images/ - - logo.png: /srv/etherpad/etherpad/src/static/skins/colibris/images/ - - index.html: /srv/etherpad/etherpad/src/templates/ - - index.js: /srv/etherpad/etherpad/src/static/skins/colibris/ - - iframe_editor.css: /srv/etherpad/etherpad/src/static/css/ + vars_files: + - vars/etherpad.yml diff --git a/inventory.yml b/inventory.yml index ba0499a..61ef7c5 100644 --- a/inventory.yml +++ b/inventory.yml @@ -1,6 +1,6 @@ paddone: - hosts: 192.168.199.102 - vars: - ansible_user: root - ansible_python_interpreter: /usr/bin/python3 + hosts: paddone.cose.belle +all: + vars: + passwordstore_path: cisti.org/ansible diff --git a/roles/stable/etherpad/defaults/main.yml b/roles/stable/etherpad/defaults/main.yml index 7c2c8c8..6a9cc83 100644 --- a/roles/stable/etherpad/defaults/main.yml +++ b/roles/stable/etherpad/defaults/main.yml @@ -4,7 +4,8 @@ favicon: "favicon.ico" listen_ip: "0.0.0.0" listen_port: "8001" log_level: "INFO" -database_password: "{{lookup('password', './.pass/etherpad_db_password')}}" +database_password: "{{lookup('community.general.passwordstore', '{{passwordstore_path}}/etherpad/db_password create=True nosymbols=true')}}" +pad_admin_password: "{{lookup('community.general.passwordstore', '{{passwordstore_path}}/etherpad/admin_password create=True nosymbols=true')}}" plugins: ['ep_headings2', 'ep_table_of_contents', 'ep_comments_page', 'ep_align', 'ep_delete_after_delay_lite'] diff --git a/roles/stable/etherpad/templates/settings.json.j2 b/roles/stable/etherpad/templates/settings.json.j2 index cfe8c1f..cf8c439 100644 --- a/roles/stable/etherpad/templates/settings.json.j2 +++ b/roles/stable/etherpad/templates/settings.json.j2 @@ -363,21 +363,21 @@ * Set to 0 to disable extra scrolling */ "percentage": { - "editionAboveViewport": 0, - "editionBelowViewport": 0 + "editionAboveViewport": 0.2, + "editionBelowViewport": 0.2 }, /* * Time (in milliseconds) used to animate the scroll transition. * Set to 0 to disable animation */ - "duration": 0, + "duration": 200, /* * Flag to control if it should scroll when user places the caret in the * last line of the viewport */ - "scrollWhenCaretIsInTheLastLineOfViewport": false, + "scrollWhenCaretIsInTheLastLineOfViewport": true, /* * Percentage of viewport height to be additionally scrolled when user @@ -403,7 +403,7 @@ "admin": { // 1) "password" can be replaced with "hash" if you install ep_hash_auth // 2) please note that if password is null, the user will not be created - "password": "fk30f1EmWspoCVQOqgvhuODHw", + "password": "{{pad_admin_password}}", "is_admin": true }, }, @@ -418,7 +418,7 @@ * * WARNING: this will disable security on the instance. */ - "loadTest": "${LOAD_TEST:false}", + "loadTest": false, /* * Disable indentation on new line when previous line ends with some special diff --git a/tests/assets b/tests/assets deleted file mode 120000 index ec2e4be..0000000 --- a/tests/assets +++ /dev/null @@ -1 +0,0 @@ -../assets \ No newline at end of file diff --git a/tests/etherpad-playbook.yml b/tests/etherpad-playbook.yml deleted file mode 100644 index a01a18c..0000000 --- a/tests/etherpad-playbook.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- - -- name: "Testing etherpad role" - hosts: etherpad - roles: - - role: stable/common - - role: stable/etherpad - vars: - title: "Pad@cisti" - pad_lang: "it-IT" - pad_default_text: | - Sei su pad.cisti.org! Qui potrai usare usare PAD. - Un PAD è uno strumento di scrittura collaborativa per scrivere testi, comunicati o quello che vuoi assieme ad altre persone! - Questo è uno dei servizi di cisti.org, fuori dalle logiche del profitto e del capitalismo, dietro ci sono un gruppo di persone volontarie che si responsabilizzano a mantenere in piedi tutto questo. - - ALCUNE COSE DA SAPERE: - - Per iniziare cancella tutto questo testo e inizia a scrivere! - - Ogni pad può essere modificato da CHIUNQUE sia in possesso del sito (URL) o che possa indovinarlo facilmente, quindi scegli bene il nome del pad che vuoi creare! - - Questo pad verrà eliminato automaticamente dopo 60 giorni di inattività - - Una volta cancellato un pad NON ci sono modi di recuperarlo! - - Questo pad ci tiene così tanto alla privacy che non sappiamo neanche chi sei, rispetta l'anonimato e usalo bene. - - - - made with ❤ by underscore_to hacklab - override_files: - - index.css: /srv/etherpad/etherpad/src/static/skins/colibris/ - - fond.jpg: /srv/etherpad/etherpad/src/static/skins/colibris/images/ - - logo.png: /srv/etherpad/etherpad/src/static/skins/colibris/images/ - - index.html: /srv/etherpad/etherpad/src/templates/ - - index.js: /srv/etherpad/etherpad/src/static/skins/colibris/ - - iframe_editor.css: /srv/etherpad/etherpad/src/static/css/ \ No newline at end of file diff --git a/tests/goploader.yml b/tests/goploader.yml deleted file mode 100644 index 4b87e51..0000000 --- a/tests/goploader.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- - -- name: "GoPloader Testing Role" - hosts: goploader.antifa.tech - roles: - - role: common - - role: goploader - vars: - hostname: goploader.antifa.tech diff --git a/tests/infra.yml b/tests/infra.yml deleted file mode 100644 index 8504b2f..0000000 --- a/tests/infra.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- - -- name: "Frontend" - hosts: frontend - become: true - roles: - - role: frontend - vars: - proxies: - cicles.cisti.org: "{{grande_macchina}}:8080" - mastodon.cisti.org: "{{grande_macchina}}:9001" - gancio.cisti.org: "{{grande_macchina}}:9001" diff --git a/tests/inventory.yml b/tests/inventory.yml deleted file mode 100644 index 6fd0ce0..0000000 --- a/tests/inventory.yml +++ /dev/null @@ -1,7 +0,0 @@ -etherpad: - hosts: 172.172.0.2 - vars: - ansible_user: root - ansible_ssh_private_key_file: /home/les/.ssh/id_rsa.pub - ansible_python_interpreter: /usr/bin/python3 - diff --git a/tests/roles b/tests/roles deleted file mode 120000 index d8c4472..0000000 --- a/tests/roles +++ /dev/null @@ -1 +0,0 @@ -../roles \ No newline at end of file diff --git a/tests/up1.playbook.yml b/tests/up1.playbook.yml deleted file mode 100644 index 65bab1b..0000000 --- a/tests/up1.playbook.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- - -- name: "Testing up1 role" - hosts: jolly - become: true - roles: - - role: common - - role: up1 - vars: - hostname: :8000 diff --git a/vars/etherpad.yml b/vars/etherpad.yml new file mode 100644 index 0000000..c7a6cf0 --- /dev/null +++ b/vars/etherpad.yml @@ -0,0 +1,27 @@ +--- + title: "Pad@cisti" + pad_lang: "it-IT" + pad_default_text: | + Sei su pad.cisti.org! Qui potrai usare usare PAD. + Un PAD è uno strumento di scrittura collaborativa per scrivere testi, comunicati o quello che vuoi assieme ad altre persone! + Questo è uno dei servizi di cisti.org, fuori dalle logiche del profitto e del capitalismo, dietro ci sono un gruppo di persone volontarie che si responsabilizzano a mantenere in piedi tutto questo. + + ALCUNE COSE DA SAPERE: + - Per iniziare cancella tutto questo testo e inizia a scrivere! + - Ogni pad può essere modificato da CHIUNQUE sia in possesso del sito (URL) o che possa indovinarlo facilmente, quindi scegli bene il nome del pad che vuoi creare! + - Questo pad verrà eliminato automaticamente dopo 60 giorni di inattività + - Una volta cancellato un pad NON ci sono modi di recuperarlo! + - Questo pad ci tiene così tanto alla privacy che non sappiamo neanche chi sei, rispetta l'anonimato e usalo bene. + + + + made with ❤ by underscore_to hacklab + + # Custom cisti.org style modification (background image, display random pad string in input field) + override_files: + - index.css: /srv/etherpad/etherpad/src/static/skins/colibris/ + - fond.jpg: /srv/etherpad/etherpad/src/static/skins/colibris/images/ + - logo.png: /srv/etherpad/etherpad/src/static/skins/colibris/images/ + - index.html: /srv/etherpad/etherpad/src/templates/ + - index.js: /srv/etherpad/etherpad/src/static/skins/colibris/ + - iframe_editor.css: /srv/etherpad/etherpad/src/static/css/