add binary file to rpm package CentOS 7

Posted in Новости on 13 сентября, 2019 by admin

Понадобилось создать rpm пакет для node_exporter ( компонент мониторинга Prometheus ). Как обычно с rpmbuild создал окружение и вышел такой spec:

Name:           prometheus-node-exporter
Version:        0.5.0
Release:        1
Summary:        Prometheus node_exporter official release rpm package

Group:          PT
BuildArch:      x86_64
License:        GPL
URL:            https://github.com/
Source:         prometheus-node-exporter-0.5.0.tar.gz

%description
Prometheus official node_exporter release

%prep
%setup -q
%build
%install
install -m 0755 -d $RPM_BUILD_ROOT/usr/local/bin
#install -m 0755 node_exporter $RPM_BUILD_ROOT/usr/local/bin/node_exporter
cp node_exporter $RPM_BUILD_ROOT/usr/local/bin/node_exporter

%files
/usr/local/bin/node_exporter

%changelog
* Fri Sep 13 2019 Nikolai Vaganov 0.5.0
  - Initial rpm release for official source

Но незадача пришла на этапе сборки пакета в виде ошибки Binary ID :

# rpmbuild -bb SPECS/prometheus-node-exporter.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.CYr1Tz
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf prometheus-node-exporter-0.5.0
+ /usr/bin/tar -xf -
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/prometheus-node-exporter-0.5.0.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd prometheus-node-exporter-0.5.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.t2q8zQ
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd prometheus-node-exporter-0.5.0
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.hipri7
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64 '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64
++ dirname /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64
+ cd prometheus-node-exporter-0.5.0
+ install -m 0755 -d /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64/usr/local/bin
+ cp node_exporter /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64/usr/local/bin/node_exporter
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /root/rpmbuild/BUILD/prometheus-node-exporter-0.5.0
extracting debug info from /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64/usr/local/bin/node_exporter
*** ERROR: No build ID note found in /root/rpmbuild/BUILDROOT/prometheus-node-exporter-0.5.0-1.x86_64/usr/local/bin/node_exporter
error: Bad exit status from /var/tmp/rpm-tmp.hipri7 (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.hipri7 (%install)

При этом если поменять бинарник на обычный текстовый файл sh или txt , то таких проблем не наблюдалось.

В итоге был найден фикс. Требуется в самый верх spec файла добавить :

%define debug_package %{nil}

и сборка прошла успешно !!!!

Tags: , , ,

Замена диска в mdadm RAID1

Posted in Новости on 8 июня, 2018 by admin

1. Вылетел диск :

cat /proc/mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[2](F)
4200896 blocks [2/1] [_U]

md1 : active raid1 sdb2[1] sda2[2](F)
2104448 blocks [2/1] [_U]

md2 : active raid1 sdb3[1] sda3[2](F)
286728000 blocks [2/1] [_U]

unused devices:

2. Видим, что вылетел /dev/sda. Удаляем вылетевший диск из массивов :

mdadm /dev/md0 --remove /dev/sda1
mdadm /dev/md1 --remove /dev/sda2
mdadm /dev/md2 --remove /dev/sda3

3. Меняем вылетевший диск. Переносим таблицу разделов на новый чистый диск

!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!! Очень внимательно смотрим направление копирования таблицы разделов, иначе затрем все данные
sfdisk -d /dev/sdb | sfdisk /dev/sda

4. Ставим граб на новый диск :

grub-install /dev/sda

5. Вносим в массивы новый диск :

mdadm /dev/md0 -a /dev/sda1
mdadm /dev/md1 -a /dev/sda2
mdadm /dev/md2 -a /dev/sda3

6. Смотрим за синхронизацией :

cat /proc/mdstat

Tags: , , ,

Device br0 does not seem to be present, delaying initialization.

Posted in Новости on 1 марта, 2017 by admin


sed -i 's/TYPE=bridge/TYPE=Bridge/g' /etc/sysconfig/network-scripts/ifcfg-br0
shutdown -r now

Tags: ,

Расширение gluster volume

Posted in Новости on 10 февраля, 2017 by admin

Допустим у нас есть два сервера ( s1 и s2 ) с brick и репликацией волюма и нам нужно добавить еще один ( s3 ). Условимся, что все ПО уже стоит на третьем ( gluster-server glusterfs и прочее сопутствующее ). Все операции будем проводить с одной из текущих нод :

1. Проверяем доступность гластера
gluster peer probe s3
Probe successful

2. Подключаем новый волюм и увеличиваем репликацию
gluster volume add-brick replica 3 s3:/path/to/mounted/brick
Add Brick successful

3. Проверяем теперь на любом из серверов, что волюм был изменен :
gluster volume info

Tags: , , ,

Быстрый сетап elasticsearch cluster на docker

Posted in Новости on 14 апреля, 2016 by admin

node1 — master — 1.1.1.1
node2 — slave — 2.2.2.2
node3 — slave — 3.3.3.3

Одна нода :

docker run -d --name es-master -p 9200:9200 es
docker run -d --name es-slave1 --link es-master -e UNICAST_HOSTS=es-master es
docker run -d --name es-slave2 --link es-master -e UNICAST_HOSTS=es-master es

Между разными docker нодами.
node1 :

docker run --net=host -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e CLUSTER=Prod itzg/elasticsearch

node2,node3 :

docker run --net=host -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e UNICAST_HOSTS=1.1.1.1 -e CLUSTER=Prod itzg/elasticsearch

Tags: , , , ,