CentOS 7 64-bit, ready for BETA testing (Update: Aug 29th)

DirectAdmin Support

Administrator
Staff member
Joined
Feb 27, 2003
Messages
9,158
Hello,

We're pleased to announce that the 64-bit of CentOS 7 is ready for BETA testing.
We recommend that only advanced Users use it, as CentOS has made changes to the boot system and default file system, so there may be bugs.

We request that issues are posted to the CentOS 7 Forum (please limit e-mail support requests, as they'll probably be duplicates anyway). Feel free to email us the forum link, if needed.
Note that although we always do our best to resolve issues immediately, as it's BETA, some issues may required some time to resolve.
The 32-bit version is not yet available.

Notes about CentOS 7:

1)
The boot system now uses systemctl and does not use the /etc/init.d/* scripts.
Example on restaring and using apache:
Code:
systemctl restart httpd.service
systemctl status httpd.service
If needed, after adding a service file to /etc/systemd/system, run this to enable it at boot and be able to use it:
Code:
systemctl daemon-reload
systemctl enable httpd.service

2) New XFS file system. The BETA version of DA for CentOS 7 binaries support XFS quotas (will also be support in the next release of DA for other OSs)
We've found that manual changes, and a reboot is required to mount the / partition with XFS quotas... however if you use /home for XFS, then the reboot is not required.
Guide here: http://help.directadmin.com/item.php?id=557

If you install ext4 with CentOS 7, at the moment, you must set this directadmin.conf option:
Code:
use_xfs=0
as it defaults to 1 for CentOS 7 (we may add a check for that in the future)

3) The pre-install commands are slightly different:
http://help.directadmin.com/item.php?id=354

all one line 1, less db4-devel, but add the 2nd line. This is the long single-call version
Code:
[COLOR=#000000][FONT=courier new]yum install wget gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed autoconf automake libtool which patch [/FONT][/COLOR][COLOR=#000000][FONT=courier new]psmisc net-tools systemd-devel libdb-devel[/FONT][/COLOR]
which may warrant a pre-install.sh script, to keep it cleaner.

4) You must use CustomBuild 2.0 with CentOS 7.

John
 
Update: August 29th

We've found and fixed several bugs in the new binaries, so if your CentOS 7 binaries have a build date before August 29th, we'd recommend you update them:
Code:
cd /usr/local/directadmin
./directadmin o
You can update the binaries with this guide:
http://help.directadmin.com/item.php?id=29

or using the pre-release binaries:
http://help.directadmin.com/item.php?id=408

As of right now, both binaries are going to be exactly the same, so either method would give you the same binaries.

John
 
There seem to be some problems with DA service monitor with the LFD service.
LFD is a part from the Configserver CSF/LFD firewall.

There is a thread about it here, csf DA plugin bug @ centos7
 
CSF does not support firewalld at this moment.

That is not the issue here. It is about LFD. "lfd can monitor the most commonly abused protocols, SSHD, POP3, IMAP, FTP and
HTTP password protection. Unlike other applications, lfd is a daemon process that monitors logs continuously"

Quote from the developer of csf/lfd:
I cannot help with the DA service monitor as I do not know how it retrieves the memory usage. The Stop/Start and Restart options should work for systemd on DA so long as DA is correctly using the systemctl commands to restart it.
 
Memory usage on the services monitor page is taken from this script:
Code:
/usr/local/directadmin/scripts/service_memory_usage.sh
where the memory usage is taken from all processes of the same name from the "ps axo comm,rss" output.

As for start/stop/restart on systemd, for "lfd", DA would call:
Code:
/usr/bin/systemctl restart lfd.service 2>&1
it also checks to ensure that:
Code:
/etc/systemd/system/lfd.service
exists before the command is run. If it doesn't exist, it then checks for
Code:
/usr/lib/systemd/system/lfd.service
which would also be found by the systemctl command.. so either lfd.service file can be used (but in DA, we use /etc/systemd/system/*.service)

John
 
Thanks. I've passed the information to the csf/lfd forum.
 
The reason why the memory usage isn't shown is because the lfd process shows up as "lfd - sleeping" or "lfd - action" when using ps axo comm,rss. The script doesn't seem to like the spaces in the name nor the fact that the name keeps changing. But I don't think this is really an issue as you can still start and stop the process just fine anyway.
 
CentOS Linux release 7.1.1503 Network Issues and Fix

For my new setup on CentOS Linux release 7.1.1503, DirectAdmin's startips would screw the network up-- no matter if NetworkManager was installed or not...

Here what needed to be done to get network IPs properly working:
Code:
systemctl disable startips.service

Following, we then setup the NIC IPs as usual... (note the name convention is different, no longer is ifcfg-eth0 used, but instead your network is assigned a unique name; for me it's 'eno1' ; ifcfg-eno1)

We can do this either by making alias ifcfg-eno1:1, ifcfg-eno1:2, etc... or via Centos 7 way using only the main ifcfg-eno1 file (this is what I used)

Code:
cd /etc/sysconfig/network-scripts 
vi ifcfg-eno1

Here is my ifcfg-eno1 config:



Code:
DEVICE=eno1
NAME=eno1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NM_CONTROLLED=no
ONBOOT=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
UUID=abf4dgb-57cc-4484-4fa9-b4a71689c359
HWADDR=xx:xx:xx:xx:xx:xx
#DNS=xx.xx.xx.186
DNS1=4.2.2.2
DNS2=8.8.8.8
GATEWAY0=xx.xx.xx.185
IPADDR0=xx.xx.xx.186
PREFIX0=29
IPADDR1=xx.xx.xx.187
PREFIX1=29
IPADDR2=xx.xx.xx.188
PREFIX2=29
IPADDR3=xx.xx.xx.189
PREFIX3=29
IPADDR4=xx.xx.xx.190
PREFIX4=29
IPADDR5=xxx.xxx.xxx.145
PREFIX5=29
IPADDR6=xxx.xxx.xxx.146
PREFIX6=29
IPADDR7=xxx.xxx.xxx.147
PREFIX7=29
IPADDR8=xxx.xxx.xxx.148
PREFIX8=29
IPADDR9=xxx.xxx.xxx.149
PREFIX9=29
IPADDR10=xxx.xxx.xxx.150
PREFIX10=29


Then you can reboot...

or if you have access to IPMI you can do ...

Code:
ip addr flush dev eno1 ; ifdown eno1 ; ifup eno1 ; service network restart

# If you have NetworkManager installed AND your ifcfg-eno1 is set to NM_CONTROLLED=yes

nmcli c down eno1; nmcli c up eno1

Or you can try using 'screen' prior to running the above commands and hope your network comes back up... But best bet is to just reboot.

Example:

Code:
screen
ip addr flush dev eno1 ; ifdown eno1 ; ifup eno1 ; service network restart

# If you have NetworkManager installed AND your ifcfg-eno1 is set to NM_CONTROLLED=yes

nmcli c down eno1; nmcli c up eno1


Following, you won't be using ifconfig anymore to see your IPs... instead you'll use
Code:
ip addr show
# or simply
ip addr
...

So from now on if you add new IPs to DirectAdmin, you'll also have to manually add them ifcfg-eno1... it's pretty simple process, that only needs to be done once...



Hope this helps someone... It took a lot of trial and error getting the network IPs stable with Centos 7 and DirectAdmin ;)
 
Last edited:
ethernet device name is taken from directadmin.conf. Please check if you have a correct ethernet device set:
Code:
/usr/local/directadmin/directadmin c | grep ethernet_dev
 
@duntuk, I think I had the same problem on CentOS 7.1. If I added extra IPs in DirectAdmin, then the network would not start when I rebooted the server. I have solved the problem, and I think it is a bug in CentOS 7.1

I had CentOS 7.1 minimal installed, and NetworkManager should not be enabled as default, however it might have been (I am not sure if it was). When troubleshooting, first I tried to enable NetworkManager (but I am not sure if it was enable already or not, I did this:

Code:
chkconfig NetworkManager on
service NetworkManager start
systemctl restart network.service
ifconfig
reboot

Then I disabled NetworkManager by doing this:

Code:
[root@server~]# systemctl stop NetworkManager.service
[root@server~]# chkconfig NetworkManager off
Note: Forwarding request to 'systemctl disable NetworkManager.service'.
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
[root@server~]#

And after doing that, the problem was solved. I can now add new ips in IP Management in DirectAdmin and reboot the server, and I don't get any problems anymore. The network start up fine after reboot.

Edit: By the way, you can get ifconfig in CentOS 7 by installing net-tools: yum install net-tools
 
Last edited:
Memory usage on the services monitor page is taken from this script:
Code:
/usr/local/directadmin/scripts/service_memory_usage.sh
where the memory usage is taken from all processes of the same name from the "ps axo comm,rss" output.

This doesn't work as expected on CentOS 7 because some programs have spaces in their name on the output with the command. A drop-in workaround:

In file /usr/local/directadmin/scripts/service_memory_usage.sh:
Find:
Code:
$PS axo comm,rss | $AWK '{arr[$1]+=$2} END {for (i in arr) {print i "=" arr[i]/1024}}' | $GREP -v '=0$'
Replace with:
Code:
TOP=/usr/bin/top
$TOP -bn1 | awk 'NR > 7 && $8 ~ /S|D/ { print $12" "$6 }' | $AWK '{arr[$1]+=$2} END {for (i in arr) {print i "=" arr[i]/1024}}' | $GREP -v '=0$'

Should work on all systems.
 
Back
Top