Getting started
Requirements
- Unix operating system with at least:
- 1 vCPU
- 1 GB memory
- 500GB of free disk
- Java 8 or 11
- git 1.7 or greater
- ssh
- sudo
Optional
- ETCD, JDBC or AWS DynamoDB for configuration management
- SQL database or AWS DynamoDB and S3 for job execution logging
- AWS Cognito or Unix PAM for user management
1. Installation
Install BeyondCron using your preferred distribution:
2. Configure ssh
bc-agent
In order to execute commands on remote servers, bc-agent expects the bc-agent user bc-daemon to have passwordless ssh access to each remote server.
bc-server
When joining a cluster, each BeyondCron server syncs its local git repository with a running server. It order to do this, the user bc-daemon requires passwordless ssh access to the other BeyondCron servers.
3. Configure sudo
bc-agent executes jobs, locally and remotely, via sudo. As such, you must allow the bc-agent user bc-daemon on every server where BeyondCron executes commands, to execute commands for other users.
A minimal entry within the /etc/sudoers to allow the agent to execute commands for any user except root, would be:
bc-daemon ALL=(ALL,!root) NOPASSWD:SETENV: ALL
If you wish to allow the BeyondCron agent to execute commands as root, the safest option is to explicitly define each command that you wish to allow the agent to execute. e.g.
bc-daemon ALL=(ALL,!root) NOPASSWD:SETENV: ALL, (root) /usr/bin/tee,/sbin/reboot
Note: BeyondCron uses the tee command so save the command output, so should always be included in the commands that the BeyondCron agent can sudo to, when allowing BeyondCron to execute commands as root.
Note: If sudo is configured with a secure path, and you wish to allow BeyondCron/users to set the PATH environment variable, you can add the bc-agent user to the sudoers exempt_group. e.g.
Defaults exempt_group += bc-daemon
4. Setting yourself up as the admin user
LDAP user directory
If the host server is configured to use LDAP for user authentication, BeyondCron can be configured to authenticate against LDAP.
To designate yourself as a BeyondCron administrator in your LDAP directory service:
- create the group
bc_admin - add yourself to the new
bc_admingroup
Using bc-cli, enable the unix user service:
sudo -u bc-daemon /usr/local/bin/bc-cli --admin config set beyondcron.user.service Unix user service reload exit
You can now login to BeyondCron using bc-cli or bc-web, using your LDAP user name/password.
Internal user directory
If BeyondCron is not configured with a user service, then it will manage users internally using the user & rolecommands.
To create yourself as a BeyondCron administrator: