Commit graph

243 commits

Author SHA1 Message Date
647833580d
Split out service management from the installation type. 2021-01-12 07:58:42 +01:00
ef748cf8e2
Fix typo and drop use of useless tempdir. 2021-01-12 07:58:42 +01:00
0e4bc443e2
Add a type for wikijs. 2021-01-12 07:58:42 +01:00
fnux
bf90e55137 Merge branch 'master' into 'dma-type'
# Conflicts:
#   scripts/run-shellcheck.sh
2021-01-12 07:10:10 +01:00
ac63762653
'unbrand' evilham's runit types 2021-01-11 14:18:41 +01:00
367cbde75b
Import evilham's runit types as it 2021-01-11 14:18:41 +01:00
d3bf8512ec
'unbrand' evilham's jitsi types 2021-01-11 14:18:41 +01:00
f055527735
Import evilham's jitsi types as-it 2021-01-11 14:18:41 +01:00
Dennis Camera
f9f5c578f7 [type/__dma*] Fix shellcheck errors 2021-01-11 12:16:09 +01:00
5a05b87beb
__unbound: normalize flag format 2021-01-04 11:45:04 +01:00
9f4a85901e
Import html/man doc generation logic from upstream cdist 2021-01-04 11:08:55 +01:00
006987307f
__unbound: make the --dns64-prefix flag optional 2021-01-04 09:43:37 +01:00
73e77f5b4d __nextcloud: add db:convert-filecache-bigint command
Looks like this command should be executed on upgrades, too.
2020-12-25 20:14:04 +01:00
1a233062a5 __nextcloud: harden here-doc for su call
Because the here-doc will be evaluated again by the shell, it will was
changed to avoid this. Because the script does not depend on such
function, it will be done in faviour of special characters.
2020-12-25 11:44:32 +01:00
b6db7b5ca8 __nextcloud: suppress global warnings from occ
As it's the default for __nextcloud_app and __nextcloud_user, it will
now suppress global warnings, too. This will be done because nobody
cares about then, only about the errors generated from the executed
command.
2020-12-21 19:04:53 +01:00
1b2d41a34a
Initial implementation of the __pass type. 2020-12-17 13:29:03 +01:00
c89bb59409 __nextcloud: add database maintainer command for upgrades
After my update to 20.0.2, Nextcloud complained about missing primary
key indexes. I don't know if it existed before that version, but
adding it to make life easier .. as no one will propably install an
older version than Nextcloud 20.0.2.
2020-11-20 19:23:40 +01:00
c0b3f79229 __nextcloud{,_user}: Updated manpages 2020-11-16 19:32:10 +01:00
Dennis Camera
487574c865 [type/__dma] Convert AWK to loop over same file twice 2020-11-16 14:15:52 +01:00
Dennis Camera
0932c9ccde [type/{__dma,__dma_auth,__mail_alias}] Quote things properly 2020-11-16 14:10:52 +01:00
Dennis Camera
7e20d13b9f [type/__mail_alias] Use explicit line variables in update_aliases.awk 2020-11-16 13:58:05 +01:00
Dennis Camera
04076a75eb [type/__mail_alias] man.rst: Make bugs a list 2020-11-16 13:57:34 +01:00
ee650d88ed __nextcloud_{app,user}: Updated man cause of __nextcloud changes
Also, the `gencode-remote` scripts where marked executeable.
2020-11-15 19:14:31 +01:00
3fda91ca2f __nextcloud: add comments about the maintenance mode
... because it not always work like you want it.
2020-11-15 17:40:02 +01:00
32417aba34 __nextcloud: aborts at installation with pgsql/mariadb
Accidentally, there was a check for a parameter that could not exist.
The block is now streamlined as other parameters got handled, too :-)
2020-11-15 16:34:26 +01:00
c24aedd4db __nextcloud: remove --webroot parameter
Because the detection of the webroot is not that good, it was removed.
Now, the object id contains the full path of the nextcloud installation.

This changes the installation process a bit, as it will download the
tarball to /tmp rather the webroot.

Also, this commit contains a bit overhaul work.
2020-11-15 16:21:56 +01:00
fnux
2e02c413b6 Merge branch 'netbox' into 'master'
__netbox type

See merge request ungleich-public/cdist-contrib!12
2020-11-04 09:24:18 +01:00
7490cef49e Initial __nextcloud_app type
Overall complete, more functionalitly is currently out of scope.
2020-10-31 16:50:06 +01:00
9ed1a9cbfd __nextcloud_user: fix misspelled quota parameter 2020-10-31 16:25:35 +01:00
d0f597b9e4 __nextcloud: added manpage notes
.. and some more.
2020-10-31 14:27:47 +01:00
a82a880858 __nextcloud_user: finished manpage 2020-10-31 12:26:36 +01:00
30205b38ae __nextcloud_user: add --quota paramter 2020-10-31 11:44:31 +01:00
82283d0b1c __nextcloud_user: new parameters to prevent changes to the user
This adds new parameters `--only-setup` and `--keep-*` to prevent
certain parameters to be changed in Nextcloud. This will not apply to
the setup.
2020-10-31 09:47:38 +01:00
635f03f527 __nextcloud_user: use occ group: commands
Instead of the self-tinkered php code, the correct occ command is used
now.
2020-10-30 20:08:32 +01:00
1e1df1016d __nextcloud_user: add manpage 2020-10-30 20:05:12 +01:00
b0ed6b2f18 Initial __nextcloud_user type
This type setup and updates a nextcloud user account. Currently not
finished yet, but should work in all cases.
2020-10-30 19:14:24 +01:00
072ca37720 __nextcloud: stricter check configuration values
This now checks the configuration value exactly and does not say there
are equal if just the end of the string differs.

Resulting from this, it will run code the next run if the default port
was in a database migration. This was fixed by instantly correct this
configuration value.
2020-10-26 19:19:49 +01:00
b368102bd5 __nextcloud: misc adjustments
Mostly to the manpage, but some minor fixes, too.
2020-10-25 20:29:57 +01:00
87e115da98 __netbox: some manpage fixes
Mostly invalid links ..
2020-10-25 19:13:10 +01:00
77b530eefb __nextcloud: update manpage
Added webroot detection, examples and notes. Should be complete now.
2020-10-25 18:57:02 +01:00
809ad7aa9d __nextcloud: migrate if the database type change
This adds a migration progess if the database type changes automaticly.
2020-10-25 14:55:11 +01:00
facb204749 __nextcloud: move data directory if destination changes
The type now handles the case when the data directory will be moved to
an other location. To this, adjustment to the "maintainer mode" on
setting and the manpage.
2020-10-24 21:09:35 +02:00
3bda4cf0c8 __nextcloud: respect installer default values
To do not override default values from the nextcloud installer script,
they are accepted as default values if the user did not set any value.
2020-10-24 17:29:38 +02:00
f5c988c0f2 __nextcloud: make some db parameters mandatory
Some database parameters are required if the type is `mysql` or `pgsql`.
Also, the variants of the parameter --database-type decreased to those
that work with the configuration, as it is directly mapped to the
parameter.

The functions in `map-conf-changes.sh` where extended to support the
conditional mandatory argument to throw an error if this parameter is
set.
2020-10-24 16:46:19 +02:00
b6f4da7692 __nextcloud: completly respect --install-only parameter
This commit changes the manifest to do not check for too low versions
and does not download and unpack a tarball if available if the parameter
--install-only is set. This should make it useable now.

Also, a short message change to match the manual.
2020-10-24 15:39:54 +02:00
ea58f98ecb __nextcloud: added initial manpage
Still somehow a draft ..
2020-10-24 13:36:26 +02:00
3db4dcc6ea __nextcloud: add --data-directory to config 2020-10-24 12:56:06 +02:00
0a0e4d26b4 __nextcloud: fix shellcheck
Mostly simply because of php inline code .. also because of the argument
generation for the installation setup.
2020-10-24 10:10:30 +02:00
979398e398 Initial __nextcloud type
This type should work, but there are still many things to do here to
work nice and well.

Things that currently not work (well):
  - not all parameters work for now
  - nextcloud installations in subfolders (e.g. slashes in the object id)
2020-10-24 09:24:49 +02:00
c1d5d5b088 __netbox: remove dependency to package virtualenv
This is not required any more because it was completly replaced by
`python3-venv`. The venv handling is already given to `__pyvenv`.
2020-10-24 08:52:43 +02:00
46bff41f6d __netbox{,_uwsgi}: updated manpages
Mostly added notes of what does not work that well.
2020-10-17 11:22:47 +02:00
558021d2ee __netbox: reorder generated code for shorter transition
Now, the venv and pip things are done before the program files are
replaced, which should minimize the outage where the application is not
available.
2020-10-17 11:08:11 +02:00
9def5700c8 __netbox: replace redis DEFAULT_TIMEOUT with RQ_DEFAULT_TIMEOUT
The first one was deprecated by the second one.
2020-10-17 10:21:52 +02:00
144cae3b79 __netbox: use __pyenv and remove obsolete netbox stop
Now, the python venv is now created via `pyvenv` or `python3 -m venv`
instead of the legacy `virtualenv`. For this, not all python processes
from the venv need to be stopped.

Migration from previous versions of this type may be difficult, but
solvable if the venv will be recreated.
2020-10-17 10:16:25 +02:00
72f2996c50 __netbox*: fix shellcheck SC2162 2020-10-11 16:56:54 +02:00
32c95ccb22 __netbox: don't call pip3 uninstall if nothing available
To avoid an error from pip, it will be checked if there are packages to
uninstall. This is better than just doing `|| true`.
2020-10-11 16:50:22 +02:00
13e97d171b __netbox*: added systemd socket support
The Gunicorn type now supports systemd sockets only. With uWSGI, you can
choose between it and the native sockets based on the parameters chosen.
This is done because it could not be implemented to have multiple
protocols with the systemd sockets (so you may choose).

The systemd socket unit file is generally available, so both types use
the same script to generate the socket unit file.
2020-10-11 16:39:19 +02:00
3b780c4794 __netbox: fixup small bugs and venv process killing
Changed flag (force to ignore a non-existant directory), typo and
swapped arguments are done. Also, the process to stop all processes from
the virtal environment has changed: Now, it stops all potential services
and ignore errors (because a service doesn't exist).

After that, it sends a kill signal to all processes and then gracefully
wait since there is no option to do that with systemd.
2020-10-08 19:54:48 +02:00
0b3bc14530 __netbox: adjusted command flags
Mostly added -q to the pip calls. Also forced the temp directory removal.
2020-10-06 17:29:31 +02:00
8f1b56026c __netbox: force link creation for config files
This adds the force flag to `ln` to avoid aborts cause the link already
exists and so forth. It also adds robustness to the execution.
2020-10-05 19:02:05 +02:00
0c85b2d3fd __netbox: uninstall not anymore required packages
This code tries to remove packages not needed anymore. As it presumably
not removing dependencies, it's not that perfect pice of script.
2020-10-05 18:26:47 +02:00
14f7cf8839 __netbox: set --data-root default value
The default value is set to preserve all data saved by netbox. As
explained in the manpage, it sets the directory for all data directories
to `~netbox/data/` (would resolve to `/opt/netbox/data/`), so upgrades
will not remove this data.
2020-10-04 17:40:01 +02:00
Dennis Camera
f76bcd3574 [type/__dma_auth] Update man.rst 2020-10-01 17:21:19 +02:00
Dennis Camera
1c9ab6e07b [type/__dma] Update man.rst 2020-10-01 17:18:01 +02:00
Dennis Camera
f202d11124 [type/__mail_alias] Fix continuation line processing 2020-10-01 13:54:46 +02:00
Dennis Camera
c6b795b3f9 [type/__mail_alias] Update man.rst and make --alias required 2020-10-01 13:31:00 +02:00
Dennis Camera
231f96de18 Error if expected environment variables are unset 2020-10-01 13:31:00 +02:00
050812305b __netbox: add mange.py calls recommended from upstream
Calls where added because there are used upstream in the
`upgrade.sh`-Script, too.

Upgrade-Script:
  https://github.com/netbox-community/netbox/blob/develop/upgrade.sh
2020-09-28 20:04:22 +02:00
b55186544f __netbox: adding seperate /opt/netbox/cdist/ directory
Adding a place to keep all configuration stuff for cdist seperated from
the installation directory. For safety reasons.
2020-09-28 19:49:29 +02:00
Dennis Camera
2270c32ddb [type/__dma] Add missing license headers 2020-09-28 17:30:53 +02:00
Dennis Camera
b48b48e404 [type/__mail_alias] Externalise AWK update script to separate file 2020-09-28 17:29:41 +02:00
Dennis Camera
6ae0808560 [type/__dma] Externalise AWK update script to separate file 2020-09-28 16:54:21 +02:00
Marko Seric
3feaea1d96 [type/__dma_auth] Externalise AWK update script to separate file 2020-09-28 16:43:31 +02:00
Dennis Camera
d693bf5f90 Move auth_conf explorer from __dma_auth to __dma 2020-09-28 16:34:12 +02:00
Dennis Camera
445bc75deb [type/__dma_auth] Drop --server parameter
Currently, dma does not differentiate between login users on the SMTP server.
It will pick whatever entry it finds first
(https://github.com/corecode/dma/blob/v0.13/net.c#L531).
As a result, the --server parameter only adds confusion.
2020-09-28 15:35:58 +02:00
e800f42a6d __netbox: consistency with __systemd_unit --restart
This commit brings consistency into the --restart parameter for systemd
units. All units except the netbox wrapper service will be restarted on
unit change.
2020-09-09 20:33:20 +02:00
dd167f075d __netbox*: fix service restart order
Cause of corrupt databases if the services are restarted incorrectly,
the order and dependencies are adjusted. Now, the `netbox-rq` service
will be included in restarts of `netbox` and required for the WSGI
servers that it must running.

For these changes, the restart command of `__netbox` was adjusted. The
other ones where edited too, to use the same command.

All services now require redis and postgresql to be started before them
to prevent any start order issues.

If someone asked for what the RQ worker is required, see here:
 https://netbox.readthedocs.io/en/stable/additional-features/webhooks/#webhook-processing
2020-09-09 19:08:46 +02:00
5d437839f6 __netbox: replaced secret key character set
The used character set should now only contain characters used by the
`netbox/generate_secret_key.py` program. Finially got correct escaping.
2020-09-08 19:52:03 +02:00
549feb87f9 __netbox: fix --update-notify
Template script for the `configuration.py` interpreted the boolean flag
incorrectly and did the thing the user do not wanted.
2020-09-08 19:20:22 +02:00
398a3da10e __netbox: fix gerneration random generated secret key
Because `/dev/random` was used, the `cdist config` could hang a long
time to get real random values. The pseudo-generated values through
`/dev/urandom` are fully enought for the secret key.
2020-09-08 18:10:15 +02:00
3389752dec __netbox: fix detection of the secret-key to use
Mixed up a parameter. Should be correct now.
2020-09-07 17:23:22 +02:00
eed3515424 __netbox: add --ldap-staff-group parameter
Required to get "admin access".
2020-09-07 17:10:59 +02:00
0afc7136f8 __netbox_uwsgi: fix if only --bind-to given
If the here-document is empty because no file could be found, an empty
line will be read. The new line of code will skip in those cases.
2020-09-06 18:39:07 +02:00
c9e4e8d7dc __netbox_{gunicorn,uwsgi}: add state parameter
Adds the --state parameter to both types. With it, the transition
between both types can be done smothly.
2020-09-06 13:44:03 +02:00
3b07a660b3 __netbox_uwsgi: add hint to the --serve-static parameter 2020-09-05 22:55:43 +02:00
b10f6b71d0 __netbox: avoid useless generated code-remote
Because `set -e` got printed all the time, the type __netbox always had
some generated code for the remote side. This line was removed because
this is already done by cdist when executing the code-remote script.

Rather, the exit-on-error option was set to some scirpts (two ..).
2020-09-05 22:34:14 +02:00
9d330a91bc __netbox_{gunicorn,uwsgi}: add netbox ownership to config file 2020-09-05 22:27:42 +02:00
090a8f015e __netbox_uwsgi: fix uwsgi netbox service file
Revert working directory changes as the configuration file still needs
to be accessable. An absolute path would work, too, but it is not the
preferred way.

To still work with the python wsgi application, `--chdir` is used.
2020-09-05 22:08:37 +02:00
ffba3ae776 __netbox_uwsgi: add --serve-static parameter
New option to directly serve static content via uWSGI.
2020-09-05 22:01:15 +02:00
5a403de057 __netbox_uwsgi: fix shellcheck
Fixed shellcheck cause of the find command. This required a bigger
change due to variables and subshell. Now, input is used through a
here-document.
2020-09-05 19:09:34 +02:00
755bd9098e __netbox*: update systemd service files
The `uwsgi-netbox` service now works, also the `netbox` wrapper service.
The PID file was removed from the Gunicorn service as it is not required
and a bit more efford to move it to `/run/` due to permissions.

Generally, all depend on `network.target` instead of
`network-online.target` now, and signals for reload, stop and kill were
added (especially required the uwsgi service).
2020-09-05 15:18:49 +02:00
314a0d4d8e __netbox: kill all running venv processes
To avoid aborts because of the python venv could not be updated by
killing all processes that uses the venv.

It will be done all times to prevent any error, because it could not be
reliably detected if the type installs or updates NetBox.
2020-09-05 13:53:05 +02:00
af91b6e3a1 __netbox_uwsgi: mark as singleton
This should have been done much earlier .. :/
2020-09-05 11:26:15 +02:00
243e34f0a5 __netbox_uwsgi: enable further protocols to bind to
Enables multiple protocols like fastcgi or HTTP to bind to. This makes
it more flexible to use.

Also, a little fix for __netbox was done: correctly output a error msg.
2020-09-05 11:20:20 +02:00
2805b6beff __netbox{,_gunicorn}: fix shellcheck directives 2020-09-02 09:15:45 +02:00
dbc91cb339 __netbox*: updated man pages 2020-09-02 07:50:12 +02:00
facb5a64d3 __netbox{,_gunicorn}: disabled shellcheck warnings
Shellcheck warned about creating content for a python array. As the
string will be printed literally into the config, the warning does not
match to the current case.
2020-09-01 13:20:31 +02:00
9d8b3ebe74 __netbox: add wrapper service to manage the wsgi services
The wrapper service will "control" the services added from the
__netbox_* types to provide a general interface. This is more dynamic
than the alias approach used previously. Through this, it is possible
to handle multiple wsgi services for netbox - if this works ..

See as a reference:
  http://alesnosek.com/blog/2016/12/04/controlling-a-multi-service-application-with-systemd/
2020-09-01 10:02:08 +02:00
1ef4420c53 __netbox_uwsgi: new type to handle uwsgi for netbox 2020-08-27 19:46:09 +02:00
bbce0030ab __netbox: enable ldap usage via configuration.py
The REMOTE_AUTH_BACKEND must be set to use LDAP.

It now exports USE_LDAP to generally say if LDAP is being used in the
configuration or not.
2020-08-26 21:07:31 +02:00