Skip to content

Installation Source

Jethro Carr edited this page Mar 20, 2015 · 1 revision

Installing from source

Installation from source is the best approach for a stable setup if you are not using a distribution supported by Installation-RPM.

Note that if you want to run the latest developmental versions, then Installation-Git is a better approach to make it easy to upgrade, however the application may be less stable.

1. Preparation

Before installing NamedManager, make sure you have:

a) A functional Apache server setup with PHP 5.3+ installed and SSL enabled.

b) A MySQL database server for storing the application's settings and cache DB.

c) One or more functional bind name servers (can be same or different hosts to the web interface).

2. Unpack Tarball

Download the latest source tarball from repos.jethrocarr.com to a location of your choosing - suggested example used in our documentation is /usr/share/namedmanager/

If you have an existing install, you must retain htdocs/include/config-settings.php and bind/include/config-settings.php but anything else can be replaced.

You will need to copy the unpacked sources to both the webserver and the Bind name servers, although the Bind name servers require only the bind/ directory.

3. Install the MySQL database

TODO: In future this will be more automated after we complete upgrades to the installer used by Amberphplib.

  • Determine the latest version of sql/version_*_install.sql

  • Import with:

$ mysql ­-u root ­-p < sql/version_LATESTDATE_install.sql
  • Create a MySQL user account for NamedManager
$ mysql ­-u root ­-p

GRANT USAGE ON * . * TO 'namedmanager'@'%' IDENTIFIED BY 'passwordgoeshere' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES, LOCK TABLES ON `namedmanager` . * TO 'namedmanager'@'%';

\q

4. Write the configuration file

You can install NamedManager in almost any way you desire, however we recommend the following approach for installing the configuration files to keep them consistent with our documentation, as well as ensuring your site config is kept outside of the unpacked tarball.

The following assumes you are inside the unpacked sources:

mkdir /etc/namedmanager/
cp htdocs/include/sample-config.php /etc/namedmanager/config.php
ln -s /etc/namedmanager/config.php $PWD/htdocs/include/config-settings.php

If you wish to just set up a config file inside the unpacked source, you can simply do:

cp htdocs/include/sample-config.php htdocs/include/config-settings.php

By default internal application authentication is used, optionally it can be switched to use LDAP - refer to Installation-Integration-LDAP for instructions on how to do this.

Edit the configuration file, at the least you will need to add in the MySQL database, username and password that you will be using for the application.

You should also configure Apache to serve the contents of the htdocs/ directory to a particular location (eg http://localhost/namedmanager/), an example configuration is provided with the application in file resources/namedmanager-httpdconfig.conf

5. Install Web Interface Cronjob

Some background cronjobs are used for performing tasks such as replicating to cloud providers. This requires the cron.d configuration file be installed

cp resources/namedmanager-www.cron /etc/cron.d/namedmanager-www

You may need to edit this file and adjust the assumed paths.

You also need to create a directory for the logs:

mkdir /var/log/namedmanager
chown apache:apache /var/log/namedmanager

6. Login and setup the name servers.

Before you can configure any domain names and records, it's necessary to login to the web interface and configure your name servers.

NamedManager requires all the name servers to have an entry in NamedManager - this information is used to generate NS records for all the domains, as well as being where the API keys are set to allow the name servers to connect to NamedManager for pulling configuration.

The default login is username "setup", password "setup123". If using recommended defaults, the application will be accessible at https://localhost/namedmanager.

7. (optional) Install the Bind integration component

For each Bind nameserver being used, the bind/ directory needs to be copied and installed in a location on the server. This step is optional and only needed if you want to use Bind with NamedManager.

The contents of bind/ provides two main components:

  • Configuration generation script which connects to the NamedManager web interface via SOAP and downloads the latest configuration and writes to Bind zonefiles and config files.
  • The log feeder script which installs a bootscript that monitors logs and pushes them back into NamedManager.

You can install NamedManager in almost any way you desire, however we recommend the following approach for installing the configuration files to keep them consistent with our documentation, as well as ensuring your site config is kept outside of the unpacked sources.

The following assumes you are inside the unpacked source:

7.1. Write configuration file for Bind integration

mkdir /etc/namedmanager/
cp bind/include/sample-config.php /etc/namedmanager/config-bind.php
ln -s /etc/namedmanager/config-bind.php $PWD/bind/include/config-settings.php

If you wish to just set up a config file inside the unpacked source, you can simply do:

cp bind/include/sample-config.php bind/include/config-settings.php

A number of changes will need to be made to this file, this will be covered in a later step.

7.2. Install crontab

The configuration generator is called regularly by cron. This crontab is optional, however it's required for automatically applying the latest configuration to the Bind name server.

cp resources/namedmanager-bind.cron /etc/cron.d/namedmanager-bind

You may need to edit this file and adjust the assumed paths.

7.3. Install bootscript

A boot script is provided and required for launching the NamedManager logpush daemon that feeds Bind logs to the web interface. This bootscript is optional, you can alternatively launch the application out of the bind/ directory when needed.

cp resources/namedmanager_logpush.rcsysinit /etc/init.d/namedmanager_logpush

You may need to edit this file and adjust the assumed paths.

8. (optional) Configure the Bind integration component

Read and perform the steps in Installation-Integration-Bind for details on configuring NamedManager to hook into the existing Bind environment.

9. (optional) Configure Route53 Integration

If planning to use the Amazon AWS Route53 integration, read Installation-Integration-Route53 for instructions on configuration.

10. Begin Adding Zones

You can now begin adding DNS zones - by importing existing Bind zonefiles, generating reverse zones or manual entry.

Use the application configuration panel to set defaults such as SOA contact and expiry times.