Skip to main content

The job server component of mProv

Project description

mProv Job Server

Build Status Latest Version Supported Python Wheel Status License

The mProv Job server is the work horse behind the scenes of the mPCC. The job server connects to the mPCC and will run jobs that are queued on the mPCC. The job server is also responsible for serving images created through the mPCC, as well as running scripts on the images and hosts when they come up.

Requirements

  • MUST BE INSTALLED AS ROOT
  • The mProv Job server requires python 3.8 and above.

Installation

The best way to install the job server is to run:

wget https://raw.githubusercontent.com/mprov-ng/mprov_jobserver/main/install_mprov_jobserver.sh -O - | bash

This will download and run the jobserver installation script from this repo.

Setup

You will need to create an API key in the mPCC for the job server. Once you have the api key, you will want to add that key to the /etc/mprov/jobserver.yaml file. There should be an example in there already, it will not work. You must replace it. While you are in there, you will want to setup the mprovURL entry to point to your mPCC instance. After that, you can enable/disable whatever jobmodules you want this job server to run by uncomment/commenting the lines that describe the jobmodules.

do not use localhost use IP or internal name

Here is an example for a good first jobserver config:

- global:
    # This points to your mprov control center instance.
    # This URL should point to the internal IP address or hostname and include a trailing slash
    # e.g. "http://<IP of internal interface>/"
    
    mprovURL: "http://mprov.local.cluster"
    # this is the api key for your mprov control center so that the 
    # jobserver can login and do stuff.
    apikey: 'kjangknfdasjhngurwegqfdbjhn'
    # this is the interval which this jobserver will check in with the mPCC
    heartbeatInterval: 10
    # runonce: True # uncomment to run the jobserver once and exit.
    myaddress: 'mprov.local.cluster' # set this to the address of this jobserver.
    jobmodules:
      # set the jobmodules you want to run here.
      - repo-delete
      - repo-update
      - image-update # REQUIRES mprov-webserver
      - mprov-webserver
      - image-delete
      - dnsmasq
      
# include any plugin yamls.        
- !include plugins/*.yaml

Post Setup

After you have setup the /etc/mprov/jobserver.yaml you can enable the jobserver with this command:

# systemctl enable --now mprov_jobserver

The jobserver should connect to the mPCC and start a repo sync which is required before you can update any images.

Arguments

Job server takes a few command line arguments. Global arguments are

  • -r Runs the jobserver in 'runonce' mode. The job server will run any of the job modules listed once then exit.
  • -d Tells the job server not to register with the mPCC. This is useful only when running the script-runner module to run post-boot or image-gen scripts.

Some plugins also use commandline arguments.

script-runner args

The script-runner job module will take the following arguments:

  • -i This is the id of the system image you are going to run scripts against. Mutually exclusive with -s
  • -s The host name of the system you are running the scripts against.
  • -b Runs scripts in post-boot mode.
  • -r (Global Option) The script-runner must be run in runonce mode only. It is probably wise to also pass -d
  • -d (Global Option) The script-runner will not register as a job server with mPCC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mprov_jobserver-0.0.54.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

mprov_jobserver-0.0.54-py3-none-any.whl (60.6 kB view details)

Uploaded Python 3

File details

Details for the file mprov_jobserver-0.0.54.tar.gz.

File metadata

  • Download URL: mprov_jobserver-0.0.54.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for mprov_jobserver-0.0.54.tar.gz
Algorithm Hash digest
SHA256 e22f8893d5dacf0fa1e629af6fcb5a1ca89f391379e9f845f3a812cb78a7bfae
MD5 5a2f22b0cd871a1cd9f823caf9263292
BLAKE2b-256 dc8d928a91ba36f3df8927d04a6346b4327d01cd964fc9b3cedec987f7836bf1

See more details on using hashes here.

File details

Details for the file mprov_jobserver-0.0.54-py3-none-any.whl.

File metadata

File hashes

Hashes for mprov_jobserver-0.0.54-py3-none-any.whl
Algorithm Hash digest
SHA256 1b45059f91739da500fff4418f995f76cac95b6c6644993390f1093c4ded5e2b
MD5 3a0a59169b03e0f887c7bbfb88f6de9f
BLAKE2b-256 e72ec5d98d2b9ef461540e3f1fcb90c6be7703c53fc803d2b3185f3e54fe3868

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page