Multicast config questions (FOG side) and issues and fixes



  • Server
    • FOG Version: 1.3.0-RC-14 SVN 5974
    • OS: Ubuntu 16.04 LTS x64
    Client
    • Service Version: N/A
    • OS: N/A
    Description

    I did a fresh install of 16.04LTS with LAMP, SSH server and then did a git pull. The install script installed the base but didn’t install UDPCast package. Oddly enough it didn’t install the services correctly either. However, I was able to get everything working properly after some tinkering. However I’m not seeing any steps on setting this up so here are the steps I took.

    Getting the Service files copied and configured
    SRC: /root/fogproject/packages/systemd/FOGMulticastManager.service
    TO: /lib/systemd/system/FOGMulticastManager.service

    SRC: /root/fogproject/packages/service/
    TO: /opt/fog/service/

    SRC: /root/fogproject/packages/service/etc/
    TO: /opt/fog/service/etc/

    Installing udp-sender
    sudo apt-get install udpcast

    Config files I modified
    /opt/fog/service/lib/service_lib.php
    Change:
    require WEBROOT.’/commons/init.php’;
    TO:
    require ‘/var/www/html/fog/commons/init.php’;

    This file was missing in my gitpull: /opt/fog/service/etc/config.php

    <?php
    define( "UPDSENDERPATH", "/usr/bin/udp-sender" );
    define( "MULTICASTLOGPATH", "/opt/fog/log/multicast.log" );
    define( "MULTICASTDEVICEOUTPUT", "/dev/tty2" );
    define( "MULTICASTSLEEPTIME", 10 );
    define( "MULTICASTINTERFACE", "ens224" );
    define( "UDPSENDER_MAXWAIT", null );
    
    define( "MYSQL_HOST", "" );
    define( "MYSQL_DATABASE", "fog" );
    define( "MYSQL_USERNAME", "root" );
    define( "MYSQL_PASSWORD", "" );
    
    define( "LOGMAXSIZE", "1000000" );
    
    define( "REPLICATORLOGPATH", "/opt/fog/log/fogreplicator.log" );
    define( "REPLICATORDEVICEOUTPUT", "/dev/tty3" );
    define( "REPLICATORSLEEPTIME", 600 );
    define( "REPLICATORIFCONFIG", "/sbin/ifconfig" );
    
    define( "SCHEDULERLOGPATH", "/opt/fog/log/fogscheduler.log" );
    define( "SCHEDULERDEVICEOUTPUT", "/dev/tty4" );
    define( "SCHEDULERWEBROOT", "/var/www/html/fog" );
    define( "SCHEDULERSLEEPTIME", 60 );
    ?>
    

    Then:

    service FOGMulticastManager start
    service FOGMulticastManager status
    

    If i’ts running, schedule a multicast task and you’ll be good to go. Multicast started working without issue after this.

    However, is this procedure correct?

    @Tom-Elliott I’m wondering if the new install script is missing something (haven’t had a chance to go through it). This was a clean build to replace my previous FOG VM and it was a comparison between VER 45XX and the one mentioned above.



  • @Wayne-Workman

    It actually prompted me to ask which interface to use. It had a default and gave me the option of picking another. So when asked I put in the ensXX entry. The FOG installer did pick this up correctly as I didn’t modify this afterwards.

    Actually the way I’ve set mine up is that I have internet access on one interface and the other ties to an unrouted VLAN. Everything assigned into this VLAN is destroyed in one way or another - either imaged or wiped with FOG.

    Log file snippet

    /usr/bin/lsb_release
    /bin/systemctl
    There was no interface with an active internet connection found.
    There was no interface with an active internet connection found.
    Reading package lists...
    Building dependency tree...
    Reading state information...
    software-properties-common is already the newest version (0.96.20.4).
    python-software-properties is already the newest version (0.96.20.4).
    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
    19 Oct 18:24:22 ntpdate
    Fetched 4,006 B in 0s (330 kB/s)
    (Reading database ... 100362 files and directories currently installed.)
    Preparing to unpack .../distro-info-data_0.28ubuntu0.2_all.deb ...
    Unpacking distro-info-data (0.28ubuntu0.2) over (0.28ubuntu0.1) ...
    Setting up distro-info-data (0.28ubuntu0.2) ...
    ii  apache2        2.4.18-2ubuntu3.1 amd64        Apache HTTP Server
    ii  bc             1.06.95-9build1 amd64        GNU bc arbitrary precision calculator language
    ii  build-essential 12.1ubuntu2  amd64        Informational list of build-essential packages
    ii  cpp            4:5.3.1-1ubuntu1 amd64        GNU C preprocessor (cpp)
    ii  curl           7.47.0-1ubuntu2.1 amd64        command line tool for transferring data with URL syntax
    ii  g++            4:5.3.1-1ubuntu1 amd64        GNU C++ compiler
    ii  gawk           1:4.1.3+dfsg-0.1 amd64        GNU awk, a pattern scanning and processing language
    ii  gcc            4:5.3.1-1ubuntu1 amd64        GNU C compiler
    ii  gzip           1.6-4ubuntu1 amd64        GNU compression utilities
    ii  htmldoc        1.8.27-8ubuntu1 amd64        HTML processor that generates indexed HTML, PS, and PDF
    ii  lftp           4.6.3a-1build2 amd64        Sophisticated command-line FTP/HTTP/BitTorrent client programs
    ii  libapache2-mod-php7.0 7.0.12-1+deb.sury.org~xenial+1 amd64        server-side, HTML-embedded scripting language (Apache 2 module)
    ii  libc6:amd64    2.23-0ubuntu3 amd64        GNU C Library: Shared libraries
    ii  libcurl3:amd64 7.47.0-1ubuntu2.1 amd64        easy-to-use client-side URL transfer library (OpenSSL flavour)
    ii  m4             1.4.17-5     amd64        macro processing language
    ii  mysql-client   5.7.15-0ubuntu0.16.04.1 all          MySQL database client (metapackage depending on the latest version)
    ii  mysql-server   5.7.15-0ubuntu0.16.04.1 all          MySQL database server (metapackage depending on the latest version)
    ii  mysql-server   5.7.15-0ubuntu0.16.04.1 all          MySQL database server (metapackage depending on the latest version)
    ii  net-tools      1.60-26ubuntu1 amd64        NET-3 networking toolkit
    ii  nfs-kernel-server 1:1.2.8-9ubuntu12 amd64        support for NFS kernel server
    ii  openssh-server 1:7.2p2-4ubuntu2.1 amd64        secure shell (SSH) server, for secure access from remote machines
    ii  php7.0         7.0.12-1+deb.sury.org~xenial+1 all          server-side, HTML-embedded scripting language (metapackage)
    ii  php7.0-bcmath  7.0.12-1+deb.sury.org~xenial+1 amd64        Bcmath module for PHP
    ii  php7.0-cli     7.0.12-1+deb.sury.org~xenial+1 amd64        command-line interpreter for the PHP scripting language
    ii  php7.0-curl    7.0.12-1+deb.sury.org~xenial+1 amd64        CURL module for PHP
    ii  php7.0-fpm     7.0.12-1+deb.sury.org~xenial+1 amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
    ii  php7.0-gd      7.0.12-1+deb.sury.org~xenial+1 amd64        GD module for PHP
    ii  php7.0-json    7.0.12-1+deb.sury.org~xenial+1 amd64        JSON module for PHP
    ii  php7.0-json    7.0.12-1+deb.sury.org~xenial+1 amd64        JSON module for PHP
    ii  php7.0-ldap    7.0.12-1+deb.sury.org~xenial+1 amd64        LDAP module for PHP
    ii  php7.0-mbstring 7.0.12-1+deb.sury.org~xenial+1 amd64        MBSTRING module for PHP
    ii  php7.0-mcrypt  7.0.12-1+deb.sury.org~xenial+1 amd64        libmcrypt module for PHP
    ii  php7.0-mysql   7.0.12-1+deb.sury.org~xenial+1 amd64        MySQL module for PHP
    ii  php-gettext    1.0.11-2+deb.sury.org~xenial+1 all          read gettext MO files directly, without requiring anything other than PHP
    ii  sysv-rc-conf   0.99-7       all          SysV init runlevel configuration tool for the terminal
    ii  tar            1.28-2.1     amd64        GNU version of the tar archiving utility
    ii  tftpd-hpa      5.2+20150808-1ubuntu1 amd64        HPA's tftp server
    ii  tftp-hpa       5.2+20150808-1ubuntu1 amd64        HPA's tftp client
    ii  vsftpd         3.0.3-3ubuntu2 amd64        lightweight, efficient FTP server written for security
    ii  wget           1.17.1-1ubuntu1.1 amd64        retrieves files from the web
    ii  xinetd         1:2.3.15-6   amd64        replacement for inetd with many enhancements
    ii  zlib1g:amd64   1:1.2.8.dfsg-2ubuntu4 amd64        compression library - runtime
    Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
    Failed to stop FOGMulticastManager.service: Unit FOGMulticastManager.service not loaded.
    Failed to stop FOGImageReplicator.service: Unit FOGImageReplicator.service not loaded.
    Failed to stop FOGSnapinReplicator.service: Unit FOGSnapinReplicator.service not loaded.
    Failed to stop FOGScheduler.service: Unit FOGScheduler.service not loaded.
    Failed to stop FOGPingHosts.service: Unit FOGPingHosts.service not loaded.
    Synchronizing state of mysql.service with SysV init with /lib/systemd/systemd-sysv-install...
    Executing /lib/systemd/systemd-sysv-install enable mysql
    ● mysql.service - MySQL Community Server
       Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2016-10-19 18:24:57 HKT; 2s ago
      Process: 44174 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
      Process: 44168 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
     Main PID: 44173 (mysqld)
        Tasks: 28
       Memory: 165.5M
          CPU: 224ms
       CGroup: /system.slice/mysql.service
               └─44173 /usr/sbin/mysqld
    
    Oct 19 18:24:56 MYFOGSERVER systemd[1]: Starting MySQL Community Server...
    Oct 19 18:24:57 MYFOGSERVER systemd[1]: Started MySQL Community Server.
    Site 001-fog disabled.
    To activate the new configuration, you need to run:
      service apache2 reload
    mysqlnd
    mcrypt
    apache2.service is not a native service, redirecting to systemd-sysv-install
    Executing /lib/systemd/systemd-sysv-install enable apache2
    Synchronizing state of php7.0-fpm.service with SysV init with /lib/systemd/systemd-sysv-install...
    Executing /lib/systemd/systemd-sysv-install enable php7.0-fpm
    Generating RSA private key, 4096 bit long modulus
    .......++
    .............++
    e is 65537 (0x10001)
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:Email Address []:Generating RSA private key, 4096 bit long modulus
    ..........................................................................++
    ............................................++
    e is 65537 (0x10001)
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:Email Address []:
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:An optional company name []:Signature ok
    subject=/CN=192.168.1.42/emailAddress=192.168.2.48
    Getting CA Private Key
    ln: failed to create symbolic link '/var/www/html/fog/fog': File exists
    ERROR: Module php does not exist!
    Module rewrite already enabled
    Considering dependency setenvif for ssl:
    Module setenvif already enabled
    Considering dependency mime for ssl:
    Module mime already enabled
    Considering dependency socache_shmcb for ssl:
    Module socache_shmcb already enabled
    Module ssl already enabled
    Enabling site 001-fog.
    To activate the new configuration, you need to run:
      service apache2 reload
    Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
    ● apache2.service - LSB: Apache2 web server
       Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: failed (Result: exit-code) since Wed 2016-10-19 18:27:50 HKT; 2s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 44521 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
    
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]:  * The apache2 configtest failed.
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]: Output of config test was:
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]: AH00526: Syntax error on line 4 of /etc/apache2/sites-enabled/001-fog.conf:
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]: Invalid command '192.168.2.48', perhaps misspelled or defined by a module not included in the server configuration
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]: Action 'configtest' failed.
    Oct 19 18:27:50 MYFOGSERVER apache2[44521]: The Apache error log may have more information.
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: apache2.service: Control process exited, code=exited status=1
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: Failed to start LSB: Apache2 web server.
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: apache2.service: Unit entered failed state.
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: apache2.service: Failed with result 'exit-code'.
    
    ● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
       Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2016-10-19 18:27:50 HKT; 2s ago
         Docs: man:php-fpm7.0(8)
     Main PID: 44527 (php-fpm7.0)
       Status: "Ready to handle connections"
        Tasks: 3
       Memory: 19.5M
          CPU: 35ms
       CGroup: /system.slice/php7.0-fpm.service
               ├─44527 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
               ├─44535 php-fpm: pool www
               └─44536 php-fpm: pool www
    
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: Starting The PHP 7.0 FastCGI Process Manager...
    Oct 19 18:27:50 MYFOGSERVER systemd[1]: Started The PHP 7.0 FastCGI Process Manager.
    

    We have outbound ping blocked so I won’t be able to produce those. IP address was manually assigned before and I’ve done a find and replace on the IP addresses but it should give you a pretty good idea.

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:50:56:ac:39:98 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.42/24 brd 192.168.1.255 scope global ens192
           valid_lft forever preferred_lft forever
        inet6 fe80::250:56ff:feac:3998/64 scope link
           valid_lft forever preferred_lft forever
    3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:50:56:ac:7a:a4 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.48/24 brd 192.168.2.255 scope global ens224
           valid_lft forever preferred_lft forever
        inet6 fe80::250:56ff:feac:7aa4/64 scope link
           valid_lft forever preferred_lft forever
    ----
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.1.1    0.0.0.0         UG    0      0        0 ens192
    192.168.1.0    0.0.0.0         255.255.255.0   U     0      0        0 ens192
    192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 ens224
    

  • Moderator

    I’ve successfully added & configured another physical interface to my VM platform at home, and I’ve successfully setup a Ubuntu 16.04 VM with two NICs, muti-homed as the OP had done.

    ip addr gives me:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 52:54:00:32:aa:f1 brd ff:ff:ff:ff:ff:ff
        inet 10.0.168.46/16 brd 10.0.255.255 scope global ens3
           valid_lft forever preferred_lft forever
        inet6 fe80::5054:ff:fe32:aaf1/64 scope link 
           valid_lft forever preferred_lft forever
    3: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 52:54:00:08:37:74 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.3/24 brd 192.168.1.255 scope global ens8
           valid_lft forever preferred_lft forever
        inet6 fe80::5054:ff:fe08:3774/64 scope link 
           valid_lft forever preferred_lft forever
    

    I updated Ubuntu to the very latest, and I have used git to pull FOG 1.3.0 RC-15.2
    I started the installer. The installer chose to use ens3, I wasn’t offered an option to choose. How did you specify an interface?

    The installer completed successfully.

    So this brings me to some other questions to ask you.

    Do you have internet access on both networks connected to the FOG Server?
    To test each interface individually using my interface names as an example is:
    ping -I ens8 www.fogproject.org
    ping -I ens3 www.fogproject.org

    Also, can you give the output of these two commands if you don’t mind please:
    ip addr show
    route -n


  • Moderator

    @AsGF2MX said in Multicast config questions (FOG side) and issues and fixes:

    The only thing is that my VM is dual homed.

    This could be what’s causing the issue. I know people have installed FOG trunk on systems with multiple NICs, and I know of at least one person who has a multi-homed fog server that he also uses for a router.

    I can setup a multi-homed Ubuntu VM at home and see what happens, this won’t be until Monday night though.

    Despite the fact that I had specified the interface the script did have an issue with the apache configuration as it added both IPs although I had picked just one interface.

    Apache’s installation is just done with apt-get install apache -y basically. There’s nothing special to it and I don’t believe that FOG adjusts it’s configuration. Both interfaces ended up in the configuration because Apache’s installer put them there.

    The interface you are asked is to determine the correct broadcast address FOG should use for multicasting, For DHCP configuration if you enable DHCP, and for automatic Storage Node setup if the box was being configured as a storage node, and the installer writes the interface into the fog installation configuration file. Beyond that I don’t see anything in the installer’s source that uses the interface for other things.

    However the only error was in the last step where it failed to start apache.

    We need the errors from that. You can go to your fogproject repository location (where you cloned/pulled to) and go into bin/fog_error you will see some files in there, one will be labeled with RC-14. This is the redirected output from the installer, it’ll have the real errors in it. Look towards the bottom of the file and please copy/paste the last 20 or so lines of that file to here please.



  • @Tom-Elliott Was this file originally missing? It didn’t exist in my git pull. Or is there some process which creates it?

    @Wayne-Workman I actually did do sudo -I first then launched screen as root and setup everything inside this.

    The only thing is that my VM is dual homed. Despite the fact that I had specified the interface the script did have an issue with the apache configuration as it added both IPs although I had picked just one interface. However the only error was in the last step where it failed to start apache.


  • Moderator

    With a fresh ISO of Ubuntu 16.04 Server downloaded from Ubuntu’s website and installed onto a VM, and then fully updated, and pulling FOG 1.3.0 RC-14 via git,

    Before installing FOG, command -v udp-sender gave no return, meaning udp-sender is not available.

    After installing FOG, the command gave the below, meaning it’s now available.

    root@ubuntu:~/git/fogproject/bin# command -v udp-sender
    /usr/local/sbin/udp-sender
    

    For FOGMulticastManager, the fog installer set it up correctly, after the installer ran it was running:

    root@ubuntu:~/git/fogproject/bin# service FOGMulticastManager status
    ● FOGMulticastManager.service - FOGMulticastManager
       Loaded: loaded (/lib/systemd/system/FOGMulticastManager.service; enabled; vendor preset: enabled)
       Active: active (running) since Sat 2016-10-22 11:05:00 CDT; 7min ago
     Main PID: 29244 (FOGMulticastMan)
        Tasks: 2
       Memory: 9.4M
          CPU: 801ms
       CGroup: /system.slice/FOGMulticastManager.service
               ├─29244 /usr/bin/php -q /opt/fog/service/FOGMulticastManager/FOGMulticastManager &
               └─29249 /usr/bin/php -q /opt/fog/service/FOGMulticastManager/FOGMulticastManager &
    
    Oct 22 11:05:00 ubuntu systemd[1]: Started FOGMulticastManager.
    root@ubuntu:~/git/fogproject/bin#
    

    And the file /opt/fog/service/etc/config.php exists on the system after installation:

    root@ubuntu:~/git/fogproject/bin# ls -la /opt/fog/service/etc/config.php
    -rw-r--r-- 1 root root 41 Oct 22 11:05 /opt/fog/service/etc/config.php
    

    Here’s what I think happened. You didn’t become root properly before the installation. To become root properly, run sudo -i and then run the FOG installer.


  • Senior Developer

    Here’s the contents of the /opt/fog/service/etc/config.php file

    <?php define('WEBROOT','/var/www/html/fog/');

  • Moderator

    I will test all the things stated here and I’ll report back.

    Also, I think you may be referring to config.class.php instead of config.php ?


Log in to reply
 

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.