Deployment fails with Zabbix plugin used on ubuntu local mirror, missing dependencies
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Fuel Plugins |
Fix Committed
|
High
|
Fuel Plugin Zabbix | |||
Fuel for OpenStack | ||||||
6.1.x |
Won't Fix
|
High
|
Fuel Plugin Zabbix | |||
7.0.x |
Fix Committed
|
High
|
Fuel Plugin Zabbix |
Bug Description
VERSION:
feature_groups:
- mirantis
production: "docker"
release: "6.1"
openstack_
api: "1.0"
build_number: "525"
build_id: "2015-06-
nailgun_sha: "dbd54158812033
python-
astute_sha: "1ea8017fe88894
fuel-library_sha: "2e7a08ad9792c7
fuel-ostf_sha: "8fefcf7c464937
fuelmain_sha: "a3998372183468
Fuel Zabbix monitoring plugin 1.0.0 installs Zabbix in HA on controllers. So there is no separate node with zabbix role. Puppet logs from the controllers display the actual error message I posted while opening the ticket.
This issues is a zabbix fuel plugin bug and needs to be entered in launchpad.
Here is the root cause analysis and possible workaround.
Symptoms
Deployment fails with the following line in puppet logs on the primary controller:
2015-08-11 00:55:52ERR (/Stage[
Steps to reproduce
Create local mirror for MOS and Ubuntu on Fuel Master:
[root@fuel nailgun]# fuel-createmirror
Download the Fuel Zabbix Monitoring plug-in from Mirantis plugins repository and install it:
[root@fuel nailgun]# cd /tmp
[root@fuel tmp]# wget http://
[root@fuel tmp]# fuel plugins --install /tmp/zabbix_
Create the environment in Fuel. You need to use 3 controllers setup (HA), otherwise the plug-in doesn't work. Networking, etc. settings do not matter.
On the Settings tab, check Zabbix check-box.
Click "Deploy" button and wait until the primary controller goes through Deploying OpenStack status
Root Cause
So in steps to reproduce, I mentioned creating a local repositories on master node first using fuel-createmirror command
fuel-createmirror takes the list of packages to add to ubuntu-partial local mirror from /opt/fuel-
The dbconfig-common is not explicitly called out there:
[root@fuel config]# cat /opt/fuel-
0
And it's not a dependency for any other package mentioned there since after running the fuel-createmirror command it's not available in the mirror:
[root@fuel nailgun]# ls -l /var/www/
0
Installing zabbix_monitoring plugin (fuel plugins --install /tmp/zabbix_
adds only the following packages:
[root@fuel nailgun]# ls -l /var/www/
total 4532
-rw-r--r-- 1 root root 1349 Jul 1 13:52 Packages.gz
-rw-r--r-- 1 root root 252 Jul 1 13:52 Release
-rw-r--r-- 1 root root 321322 Jul 1 13:52 zabbix-
-rw-r--r-- 1 root root 2723602 Jul 1 13:52 zabbix-
-rw-r--r-- 1 root root 1582564 Jul 1 13:52 zabbix-
And does not modify requirements-
Package zabbix-
Manual workaround without the plug-in re-build
Edit /opt/fuel-
[root@fuel config]# cat /opt/fuel-
dbconfig-common
Re-run fuel-createmirror for ubuntu repository only (!!!Caution: see note after the command))
[root@fuel config]# fuel-createmirror --ubuntu
!!!Caution: by default fuel-createmirror wipes out the ubuntu local mirror before performing the operation, which may lead to loosing any manual changes to mirror or unintentional update of other packages. I believe this is controlled by /opt/fuel-
After fuel-createmirror is finished, verify that the package is present:
[root@fuel nailgun]# ls -l /var/www/
-rw-r--r-- 1 root root 467850 Aug 12 03:13 dbconfig-
If you are using image based provisioning (default option in 6.1), for changes to take effect you have to force creating new nodes images for provisioning:
* Either create new environment
* Or manually delete image files from fuel master:
# Get ID of the environment
[root@fuel nailgun]# fuel environment list
id | status | name | mode | release_id | pending_release_id
---|---
8 | deployment | Zabbix | ha_compact | 2 | None
# ID of the environment is 8
# Remove all the images for this environment
[root@fuel nailgun]# rm /var/www/
root@node-28:~# less /var/log/puppet.log
2015-08-12 05:23:02 +0000 /Stage[
/etc/fuel/
Actually the deployment still fails, but on much later stage, after all the node are in Read status , post-deployment task is querying Zabbix server and gets HTTP500.
root@node-28:~# less /var/log/
Did not find 'SnmpAdminString' in module #-1 (/usr/share/
Did not find 'netSnmpObjects' in module NET-SNMP-MIB (/usr/share/
Did not find 'netSnmpModuleIDs' in module NET-SNMP-MIB (/usr/share/
Did not find 'netSnmpNotific
Did not find 'netSnmpGroups' in module NET-SNMP-MIB (/usr/share/
Did not find 'DisplayString' in module #-1 (/usr/share/
Did not find 'RowStatus' in module #-1 (/usr/share/
Did not find 'TruthValue' in module #-1 (/usr/share/
Changed in fuel: | |
milestone: | none → 7.0 |
assignee: | nobody → Fuel Plugin Zabbix (fuel-plugin-zabbix) |
importance: | Undecided → High |
Changed in fuel-plugins: | |
assignee: | nobody → Fuel Plugin Zabbix (fuel-plugin-zabbix) |
milestone: | none → 6.1 |
importance: | Undecided → High |
status: | New → Confirmed |
tags: | added: non-release |
no longer affects: | fuel |
tags: | added: customer-found support |
Changed in fuel-plugins: | |
milestone: | 6.1 → 7.0 |
Changed in fuel-plugins: | |
status: | Confirmed → Fix Committed |
Here is the full list of package names I had to add to /opt/fuel- createmirror- 6.1/config/ requirements- deb.txt to make deployment of MOS6.1 successful:
dbconfig-common downloader
snmpd
snmp-mibs-
php5-mysql
iptstate