Playing with Travis CI.
This commit is contained in:
parent
c7737c14d6
commit
35fcc9cd46
|
@ -0,0 +1,8 @@
|
|||
sudo: required
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
before_install:
|
||||
- docker build -t pandorafms/ci "$TRAVIS_BUILD_DIR/tests/"
|
||||
- docker run --rm -v "$TRAVIS_BUILD_DIR:/tmp/pandorafms" pandorafms/ci /tmp/pandorafms/tests/test.sh
|
|
@ -0,0 +1,95 @@
|
|||
FROM centos:centos6
|
||||
MAINTAINER Pandora FMS Team <info@pandorafms.com>
|
||||
|
||||
RUN { \
|
||||
echo '[EPEL]'; \
|
||||
echo 'name = CentOS Epel'; \
|
||||
echo 'baseurl = http://dl.fedoraproject.org/pub/epel/6/x86_64'; \
|
||||
echo 'enabled=1'; \
|
||||
echo 'gpgcheck=0'; \
|
||||
} > /etc/yum.repos.d/extra_repos.repo
|
||||
|
||||
RUN { \
|
||||
echo '[artica_pandorafms]'; \
|
||||
echo 'name=CentOS6 - PandoraFMS official repo'; \
|
||||
echo 'baseurl=http://artica.es/centos6'; \
|
||||
echo 'gpgcheck=0'; \
|
||||
echo 'enabled=1'; \
|
||||
} > /etc/yum.repos.d/pandorafms.repo
|
||||
|
||||
RUN yum -y update; yum clean all;
|
||||
|
||||
# Generic dependencies
|
||||
RUN yum install -y \
|
||||
firefox
|
||||
python-pip
|
||||
xorg-x11-server-Xvfb
|
||||
RUN pip install pyvirtualdisplay
|
||||
RUN pip install selenium
|
||||
|
||||
# Pandora FMS Console dependencies
|
||||
RUN yum install -y \
|
||||
git \
|
||||
httpd \
|
||||
cronie \
|
||||
ntp \
|
||||
openldap \
|
||||
anytermd \
|
||||
nfdump \
|
||||
wget \
|
||||
curl \
|
||||
openldap \
|
||||
plymouth \
|
||||
xterm \
|
||||
php \
|
||||
php-gd \
|
||||
graphviz \
|
||||
php-mysql \
|
||||
php-pear-DB \
|
||||
php-pear \
|
||||
php-pdo \
|
||||
php-mbstring \
|
||||
php-ldap \
|
||||
php-snmp \
|
||||
php-ldap \
|
||||
php-common \
|
||||
php-zip \
|
||||
nmap \
|
||||
xprobe2 \
|
||||
mysql-server \
|
||||
mysql
|
||||
|
||||
# Pandora FMS Server dependencies
|
||||
RUN yum install -y \
|
||||
git \
|
||||
cronie \
|
||||
ntp \
|
||||
wget \
|
||||
curl \
|
||||
xterm \
|
||||
postfix \
|
||||
wmic \
|
||||
perl-HTML-Tree \
|
||||
perl-DBI \
|
||||
perl-DBD-mysql \
|
||||
perl-libwww-perl \
|
||||
perl-XML-Simple \
|
||||
perl-XML-SAX \
|
||||
perl-NetAddr-IP \
|
||||
net-snmp \
|
||||
net-tools \
|
||||
perl-IO-Socket-INET6 \
|
||||
perl-Socket6 \
|
||||
nmap \
|
||||
sudo \
|
||||
xprobe2 \
|
||||
make \
|
||||
perl-CPAN \
|
||||
perl-JSON \
|
||||
net-snmp-perl \
|
||||
perl-Time-HiRes \
|
||||
perl-XML-Twig \
|
||||
perl-Encode-Locale \
|
||||
net-snmp \
|
||||
net-snmp-utils
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env python
|
||||
# Script to install the Pandora FMS Console.
|
||||
import os
|
||||
from pyvirtualdisplay import Display
|
||||
from selenium import webdriver
|
||||
|
||||
# Are we running headless?
|
||||
if ('DISPLAY' not in os.environ):
|
||||
display = Display(visible=0, size=(800, 600))
|
||||
display.start()
|
||||
|
||||
# Go to the installation page.
|
||||
browser = webdriver.Firefox()
|
||||
browser.implicitly_wait(5)
|
||||
browser.get('http://localhost/pandora_console/install.php')
|
||||
assert("Pandora FMS - Installation Wizard" in browser.title)
|
||||
|
||||
# Accept the license agreement.
|
||||
browser.find_element_by_xpath("//*[@id='step11']/img").click()
|
||||
browser.find_element_by_xpath("//*[@id='install_box']/form/div/input").click()
|
||||
|
||||
# Fill-in the configuration form.
|
||||
browser.find_element_by_xpath("//*[@id='step3']/img").click()
|
||||
browser.find_element_by_name("pass").send_keys("pandora")
|
||||
browser.find_element_by_id("step4").click()
|
||||
|
||||
# Complete the installation.
|
||||
browser.implicitly_wait(300) # The installation is going to take a long time.
|
||||
browser.find_element_by_xpath("//*[@id='step5']/img").click()
|
||||
browser.implicitly_wait(5)
|
||||
assert("Installation complete" in browser.page_source)
|
||||
|
||||
# Clean-up
|
||||
browser.quit()
|
||||
if ('DISPLAY' not in os.environ):
|
||||
display.stop()
|
|
@ -0,0 +1,50 @@
|
|||
#!/bin/bash
|
||||
SOURCE_DIR="/tmp/pandorafms"
|
||||
|
||||
################################################
|
||||
# Check the exit status of the last run command.
|
||||
# Exits if it different from 0.
|
||||
################################################
|
||||
function check {
|
||||
MESSAGE=$1
|
||||
RC=$2
|
||||
if [ $RC == 0 ]; then
|
||||
echo ">$MESSAGE... [OK]"
|
||||
else
|
||||
echo ">$MESSAGE... [ERR $RC]"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Install the Pandora FMS Console.
|
||||
cd /tmp/pandorafms/pandora_console && chmod +x pandora_console_install && yes | ./pandora_console_install --install
|
||||
check "Installing the Pandora FMS Console" $?
|
||||
|
||||
# Create the Pandora FMS database.
|
||||
cd /tmp/pandorafms/tests && chmod +x install_console.py && ./install_console.py
|
||||
check "Creating the Pandora FMS Database" $?
|
||||
|
||||
# Build and install the Pandora FMS Server.
|
||||
cd /tmp/pandorafms/pandora_server && perl Makefile.PL && make && make test
|
||||
check "Building the Pandora FMS Server" $?
|
||||
cd /tmp/pandorafms/pandora_server && chmod +x pandora_server_installer && ./pandora_server_installer --install
|
||||
check "Installing the Pandora FMS Server" $?
|
||||
|
||||
# Install the Pandora FMS Agent.
|
||||
cd /tmp/pandorafms/pandora_agents/unix && chmod +x pandora_agent_installer && ./pandora_agent_installer --install
|
||||
check "Installing the Pandora FMS Agent" $?
|
||||
|
||||
# Start the required services.
|
||||
service mysqld start && /usr/bin/mysqladmin -u root password 'pandora'
|
||||
check "Starting the MySQL Server" $?
|
||||
service httpd start
|
||||
check "Starting the Apache Web Server" $?
|
||||
service tentacle_serverd start
|
||||
check "Starting the Tentacle Server" $?
|
||||
service pandora_server start
|
||||
check "Starting the Pandora FMS Server" $?
|
||||
service pandora_agent_daemon start
|
||||
check "Starting the Pandora FMS Agent" $?
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue