Manually Build an Ubuntu Scan Worker

These instructions are for manually building/configuring an Ubuntu scan worker host (or VM), instead of using Vagrant/Salt to build a VM. This is how you would manually build a production scan worker. It is only lacking the automated startup scripts for celery.

If you are building a production scan worker, you should create a user specifically to run Phagescan and then run everything as that user. We use the user avuser by default.

Prepare your Environment

Create user avuser and set a password:

$ sudo adduser -U avuser
$ sudo passwd avuser

On the scan master, create scan_worker.zip by using the script:

installation/scanworker/make_scanworker_zip.sh

Transfer that .zip file from the scan master to this host.

Unzip the scan_master.zip, move it into /opt, and set ownership:

$ unzip scan_master.zip
$ sudo mv phagescan /opt/
$ sudo chown -R avuser:avuser /opt/phagescan

You now have a /opt/phagescan directory, which we will refer to as [Project_root_dir].

Install necessary OS packages:

If running Ubuntu:
$ sudo apt-get install $(< [Project_root_dir]/PACKAGES.ubuntu)

Build & activate a virtual environment:

$ sudo su
$ virtualenv --setuptools /opt/psvirtualenv
[root@host]$ source /opt/psvirtualenv/bin/activate

Your prompt should look like this after:

(psvirtualenv)[root@host]$

If you need to deactivate the virtual env (don't do this now):

(psvirtualenv)[root@host]$ deactivate

Install Python requirements into Virtualenv:

(psvirtualenv)[root@host]$ pip install -r [Project_root_dir]/installation/scanworker/PACKAGES.pip

You are done with the root user, so return to your standard user, su to avuser and activate virtual env:

(psvirtualenv)[root@host]$ exit
$ sudo su avuser
$ source /opt/psvirtualenv/bin/activate

Copy the Celery config file to the [Project_root_dir]:

(psvirtualenv)[avuser@host]$ cp installation/scanworker/workerceleryconfig.py workerceleryconfig.py

Edit workerceleryconfig.py as necessary. In particular, tailor BROKER_CONF to your environment.

Install chosen engines

Refer to the following files:

[Project_root_dir]/engines/[engine_name]/INSTALL

Start the Celery worker process

Use the following command to manually start celeryd:

(psvirtualenv)[avuser@host]$ celeryd -l INFO -E --config=workerceleryconfig --hostname=worker.ubuntu

To start celery on boot, see the init.d/default scripts located in the salt state tree. See installation/salt-masterless/salt/celery/worker for reference versions.