Commit graph

53 commits

Author SHA1 Message Date
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
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
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
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
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
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
e0a1b4f663 __netbox_gunicorn: extract gunicorn setup from __netbox
Because someone *want* to use something other than just gunicorn, it was
extracted to a own type. Because gunicorn is a bit deep in the netbox
installation process, it's a bit harder to isolate it.

`__netbox_uwsgi` will come, too.
2020-08-26 20:08:37 +02:00
eaf639790b __netbox: remove ldap pip3 package if not required 2020-08-26 17:39:19 +02:00
8ff7a4616d __netbox: allow multiple hostnames 2020-08-25 19:30:32 +02:00
7d694342ff __netbox: new parameter for automatic release checks 2020-08-24 19:31:49 +02:00
95fd7d872e __netbox: fix ldap config short-circuit
Forgot to negotate if statement .. works now :/
2020-08-24 18:57:27 +02:00
863c95059e __netbox: fix REMOTE_AUTH_BACKEND module not found
Updated with the backend from the current upstream configuration.
2020-08-23 19:48:56 +02:00
4e90c93eef __netbox: updated copyright
Added me to the copyright after there are some more changes :-)
2020-08-23 17:15:32 +02:00
49bb527dea __netbox: autogen secretkey and store at remote
The secret key is generated if it is not set via parameter and the
explorer does not return any. It will be saved in the netbox home
directory to easily read the key for the config generation.
2020-08-23 16:52:02 +02:00
f5c8c26db6 __netbox: new config parameters for data paths
.. to move them to an other partition.
2020-08-23 16:41:58 +02:00
88ddebd040 __netbox: fix deprecated configuration option
Fixes error message `/opt/netbox/netbox/netbox/settings.py:141:
UserWarning: REMOTE_AUTH_DEFAULT_PERMISSIONS should be a dictionary.
Backward compatibility will be removed in v2.10.`
2020-08-22 22:47:15 +02:00
584e0bbda8 __netbox: fix netbox version save
The cdist directory needs to be created to write there. This is done
directly after the new tarball is installed.
2020-08-22 22:24:17 +02:00
0b261070d3 __netbox: man note regards creating a superuser 2020-08-22 22:04:33 +02:00
4a04a2c472 __netbox: repalace tabs with whitespaces
Doing `s/\t/    /g` to have all times the same indents.
2020-08-22 21:58:44 +02:00
ce47cec2e7 __netbox: silence curl progress bar
.. but still showing errors if any.
2020-08-22 21:50:54 +02:00
ae7ffac6bb __netbox: force virtualenv to be python3
Set a flag to be sure it is python3. Else, you may get an ugly error if
python2 is not installed (and netbox requires python3.6 at minimum).
2020-08-22 21:29:30 +02:00
ee3db10ecf __netbox: auto-install sudo as dependency
There are may be systems does not have `sudo` preinstalled like
debian-minimal. Else, `su` could be used as alternative.
2020-08-22 20:55:35 +02:00
9fb3c7f52e __netbox: fix manpage indents 2020-08-22 16:00:15 +02:00
987393942b __netbox: add more database parameters 2020-08-22 15:53:24 +02:00
ce77cc4527 __netbox: note + link to find NetBox versions 2020-08-22 14:40:07 +02:00
855843ea34 __netbox: small code and config handling improvements
fixed codestyle and detection if config files need to be copied.
2020-08-22 09:19:12 +02:00
e6e6dbcd00 __netbox: added some netbox configuration options
Those who might be useful are added ..
2020-08-21 23:50:24 +02:00
a05cb214e1 __netbox: fix shellcheck by changing parameter checks
The working `ls | grep .` like solution was dropped based on the
shellcheck warning. Rather a solution with `find(1)` is used.

As alternative, it could be simply checked if the glob succeeds or not
by test all given arguments if there are existing files. It was dropped
in question if it's really better than the `find(1)` solution.
2020-08-20 19:37:09 +02:00
0281b2c804 __netbox: no ldap config if no ldap parameters
The ldap config file will be empty (only comments) if no parameter
name set matches `^ldap-*`.

It still generate a ldap config if one or more ldap parameters are set,
but not all basic parameters.
2020-08-20 17:53:25 +02:00
e47cead637 __netbox: add manpage explanation of the type 2020-08-16 15:31:38 +02:00
efab6ac23e __netbox: add version memorisation
This saves the installed version and checks if a new version must be
installed. If no update required, it updates the configuration files
if required.
2020-08-16 15:18:47 +02:00
dfd9f108b1 __netbox: add minimal manpage 2020-08-12 09:15:18 +02:00
240b8f1615 __netbox: make shellcheck happy 2020-08-12 09:01:05 +02:00
47584d6da6 __netbox: use __systemd_unit, do not recreate existing directory 2020-08-12 08:58:29 +02:00