内容简介:一、rpmbuild方式定制rpm包rpmbuid是用于制作rpm格式包的工具。rpm 4.4.x版本之前,rpmbuid工具默认的工作车间为/usr/src/redhat,所以造成普通用户不能制作rpm包。rpm 4.5.x版本开始,将rpmbuid工具默认的工作车间为$HOME/rpmbuild(用户家目录),并且推荐用户尽量不用root账号制作rpm包。rpmbuild默认工作车间为/usr/lib/rpm/macros这个文件,具体由%_topdir宏变量进行定义。官方不建议在/usr/lib/rp
一、rpmbuild方式定制rpm包
rpmbuid是用于制作rpm格式包的工具。rpm 4.4.x版本之前,rpmbuid工具默认的工作车间为/usr/src/redhat,所以造成普通用户不能制作rpm包。rpm 4.5.x版本开始,将rpmbuid工具默认的工作车间为$HOME/rpmbuild(用户家目录),并且推荐用户尽量不用root账号制作rpm包。
#rpm版本查看方法: [root@localhost ~]# rpm -qa | grep rpm perl-srpm-macros-1-8.el7.noarch rpm-python-4.11.3-35.el7.x86_64 rpm-4.11.3-35.el7.x86_64 rpm-build-libs-4.11.3-35.el7.x86_64 redhat-rpm-config-9.1.0-87.el7.centos.noarch rpm-build-4.11.3-35.el7.x86_64 rpm-libs-4.11.3-35.el7.x86_64
rpmbuild默认工作车间为/usr/lib/rpm/macros这个文件,具体由%_topdir宏变量进行定义。官方不建议在/usr/lib/rpm/macros目录中更改这个工作路径。如果需要则可以在用户家目录下建立一个.rpmmacros隐藏文件,在里面重新定义%_topdir,指向一个新的目录名。内容一般为:
[gxm@localhost ~]$ cat .rpmmacros %_topdir $HOME/新目录
在%_topdir目录下一般需要有6个目录(实际操作的时候执行命令自动创建):
备注:执行rpmdev-setuptree命令会在当前用户的家目录下的rpmbuild目录(如果该目录不存在也会被自动创建)里自动建立上述目录。
目录名 |
macros宏名 |
说明 |
BUILD |
%_builddir |
编译rpm包的临时目录 |
BUILDROOT |
%_buildrootdir |
编译后生成的软件临时安装目录 |
RPMS |
%_rpmdir |
最终生成的可安装rpm包的所在目录 |
SOURCES |
%_sourcedir |
所有源代码和补丁文件的存放目录 |
SPECS |
%_specdir |
存放SPEC文件的目录(重要) |
SRPMS |
%_srcrpmdir |
软件最终的rpm源码格式存放路径(暂时忽略掉,别挂在心上) |
当上述目录建立好之后,将所有用于生成rpm包的源代码、 shell 脚本、配置文件都拷贝到SOURCES目录里,注意通常情况下源码的压缩格式都为*.tar.gz格式。然后将编辑好的SPEC文件,命名为“软件名-版本.spec”,将其拷贝到SPECS目录下。
最后切换SPEC目录下执行命令制作rpm包:
[gxm@localhost ~]$ cd SPEC [gxm@localhost SPEC]$ rpmbuild -bb 软件名-版本.spec #打包好的rpm包在RPMS目录下
SPEC文件是最核心的,在它里面定义了头部信息和一些“阶段”(%prep、%build、%install、%clean、%pre、%post、%preun和%postun),当rpmbuild执行时它首先会去解析SPEC文件,然后依次执行每个“阶段”里的指令。
参考:
http://blog.chinaunix.net/uid-23069658-id-3944462.html1、安装相关包和查看默认工作车间
[root@localhost ~]# yum -y install rpm-build rpmdevtools [root@localhost ~]# rpmbuild --showrc | grep topdir -14: _builddir %{_topdir}/BUILD -14: _buildrootdir %{_topdir}/BUILDROOT -14: _rpmdir %{_topdir}/RPMS -14: _sourcedir %{_topdir}/SOURCES -14: _specdir %{_topdir}/SPECS -14: _srcrpmdir %{_topdir}/SRPMS -14: _topdir %{getenv:HOME}/rpmbuild
2、新增普通用户
[root@localhost ~]# useradd gxm [root@localhost ~]# passwd gxm 更改用户 gxm 的密码 。 新的 密码: 无效的密码: 密码未通过字典检查 - 它基于字典单词 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@localhost ~]# su - gxm [gxm@localhost ~]$
3、自动生成rpm打包所需目录
[gxm@localhost ~]$ rpmdev-setuptree [gxm@localhost ~]$ ll 总用量 0 drwxrwxr-x 7 gxm gxm 67 4月 16 11:38 rpmbuild [gxm@localhost ~]$ cd rpmbuild/ [gxm@localhost rpmbuild]$ ll 总用量 0 drwxrwxr-x 2 gxm gxm 6 4月 16 11:38 BUILD drwxrwxr-x 2 gxm gxm 6 4月 16 11:38 RPMS drwxrwxr-x 2 gxm gxm 6 4月 16 11:38 SOURCES drwxrwxr-x 2 gxm gxm 6 4月 16 11:38 SPECS drwxrwxr-x 2 gxm gxm 6 4月 16 11:38 SRPMS
4、将源码、配置文件等放入SOURCES目录下
[gxm@localhost rpmbuild]$ cd SOURCES/ [gxm@localhost SOURCES]$ wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz [gxm@localhost SOURCES]$ 上传其它文件
5、创建SPEC模板文件熟悉
[gxm@localhost rpmbuild]$ cd SPECS/ [gxm@localhost SPECS]$ rpmdev-newspec -o zabbix_agent-4.0.4.spec zabbix_agent-4.0.4.spec created; type minimal, rpm version >= 4.11. [gxm@localhost SPECS]$ cat zabbix_agent-4.0.4.spec Name: zabbix_agent-4.0.4 Version: Release: 1%{?dist} Summary: License: URL: Source0: BuildRequires: Requires: %description %prep %setup -q #这里要特别注意,如果压缩包和解压出来的文件名不相同,则用%setup -n 解压后目录名 %build %configure make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT %make_install %files %doc %changelog
SPEC完整版如下:
%define zabbix_user zabbix %define zabbix_dir /home/zabbix Name: zabbix_agent Version: 4.0.4 Release: 1%{?dist} Summary: zabbix agent Group: zabbix License: GPL URL: www.zabbix.com Source0: zabbix-4.0.4.tar.gz Source1: zabbix_agentd Source2: discovertcpport.sh Source3: portlist.txt Source4: discoveryproc.sh Source5: proclist.txt Source6: cmdline-jmxclient-0.10.3.jar Source7: jvm.py Source8: tomcat.py Source9: ca.crt Source10: client.crt Source11: client.key Source12: java Source13: monitor_port Source14: monitor_proc BuildRequires: gcc, gcc-c++, pcre, pcre-devel, openssl, openssl-devel Requires: gcc, gcc-c++, pcre, pcre-devel, openssl, openssl-devel %description Zabbix agentd 4.0.4 %pre grep %zabbix_user /etc/passwd > /dev/null if [ $? != 0 ] then useradd %zabbix_user -M -s /sbin/nologin fi [ -d %{zabbix_dir} ]||rm -rf %{zabbix_dir} %post mkdir -p %{zabbix_dir}/logs chown -R %zabbix_user.%zabbix_user %{zabbix_dir} chmod -R 755 %{zabbix_dir} sed -i "s/LogFile=\/tmp\/zabbix_agentd\.log/LogFile=%{zabbix_dir}/logs\/zabbix_agentd.log/g" %{zabbix_dir}/etc/zabbix_agentd.conf sed -i "s/ServerActive=127\.0\.0\.1/ServerActive=192\.168\.7\.10/g" %{zabbix_dir}/etc/zabbix_agentd.conf ipaddr=`ip a | grep -w "inet" | egrep "eno16777736|eth0" |sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'` sed -i "s/Hostname=Zabbix server/Hostname=$ipaddr/g" %{zabbix_dir}/etc/zabbix_agentd.conf sed -i "s/Timeout=3/Timeout=30/g" %{zabbix_dir}/etc/zabbix_agentd.conf echo "UnsafeUserParameters=1" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "EnableRemoteCommands=1" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "Include=%{zabbix_dir}/etc/zabbix_agentd.conf.d/" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "PidFile=%{zabbix_dir}/zabbix_agentd.pid" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "LogFileSize=0" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "StartAgents=0" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "HostMetadataItem=system.uname" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "User=zabbix" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "TLSConnect=cert" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "TLSAccept=cert" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "TLSCAFile=%{zabbix_dir}/zabbix_ssl/ca.crt" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "TLSCertFile=%{zabbix_dir}/zabbix_ssl/client.crt" >>%{zabbix_dir}/etc/zabbix_agentd.conf echo "TLSKeyFile=%{zabbix_dir}/zabbix_ssl/client.key" >>%{zabbix_dir}/etc/zabbix_agentd.conf sed -i "s/BASEDIR=\/usr\/local/BASEDIR=\/home\/zabbix/g" /etc/rc.d/init.d/zabbix_agentd systemctl daemon-reload /etc/init.d/zabbix_agentd start systemctl enable zabbix_agentd %preun systemctl stop zabbix_agentd %postun userdel -r zabbix rm -rf /etc/rc.d/init.d/zabbix_agentd rm -rf %{zabbix_dir} %prep %setup -n zabbix-4.0.4 %build ./configure --prefix=%{zabbix_dir} --enable-agent --with-openssl make %{?_smp_mflags} %install rm -rf %{buildroot} install -d %{buildroot}/etc/profile.d make install DESTDIR=%{buildroot} install -p -D -m 0755 %{SOURCE1} %{buildroot}/etc/rc.d/init.d/zabbix_agentd install -p -D %{SOURCE2} %{buildroot}%{zabbix_dir}/script/monitor_port/discovertcpport.sh install -p -D %{SOURCE3} %{buildroot}%{zabbix_dir}/script/monitor_port/portlist.txt install -p -D %{SOURCE4} %{buildroot}%{zabbix_dir}/script/monitor_proc/discoveryproc.sh install -p -D %{SOURCE5} %{buildroot}%{zabbix_dir}/script/monitor_proc/proclist.txt install -p -D %{SOURCE6} %{buildroot}%{zabbix_dir}/script/jvm/cmdline-jmxclient-0.10.3.jar install -p -D %{SOURCE7} %{buildroot}%{zabbix_dir}/script/jvm/jvm.py install -p -D %{SOURCE8} %{buildroot}%{zabbix_dir}/script/jvm/tomcat.py install -p -D %{SOURCE9} %{buildroot}%{zabbix_dir}/zabbix_ssl/ca.crt install -p -D %{SOURCE10} %{buildroot}%{zabbix_dir}/zabbix_ssl/client.crt install -p -D %{SOURCE11} %{buildroot}%{zabbix_dir}/zabbix_ssl/client.key install -p -D %{SOURCE12} %{buildroot}%{zabbix_dir}/etc/zabbix_agentd.conf.d/java install -p -D %{SOURCE13} %{buildroot}%{zabbix_dir}/etc/zabbix_agentd.conf.d/monitor_port install -p -D %{SOURCE14} %{buildroot}%{zabbix_dir}/etc/zabbix_agentd.conf.d/monitor_proc echo 'export PATH=%{zabbix_dir}/bin:%{zabbix_dir}/sbin:$PATH' > %{buildroot}/etc/profile.d/%{name}.sh %files %defattr (-,root,root,0755) %{zabbix_dir} %{zabbix_dir}/* /etc/profile.d/%{name}.sh %attr(0755,root,root) /etc/rc.d/init.d/zabbix_agentd %changelog %clean rm -rf %{buildroot}
6、打包编译
[root@localhost ~]# yum install gcc, gcc-c++, pcre, pcre-devel, openssl, openssl-devel -y [gxm@localhost SPECS]$ rpmbuild -ba zabbix_agent-4.0.4.spec [gxm@localhost SPECS]$ rpmbuild -bb zabbix_agent-4.0.4.spec #-ba和-bb二选一
7、下载安装
[gxm@localhost SPECS]$ sz ../RPMS/x86_64/zabbix_agent-4.0.4-1.el7.centos.x86_64.rpm [root@localhost ~]# yum localinstall zabbix_agent-4.0.4-1.el7.centos.x86_64.rpm -y [root@localhost ~]# rpm -qpi zabbix_agent-4.0.4-1.el7.centos.x86_64.rpm Name : zabbix_agent Version : 4.0.4 Release : 1.el7.centos Architecture: x86_64 Install Date: (not installed) Group : zabbix Size : 813091 License : GPL Signature : (none) Source RPM : zabbix_agent-4.0.4-1.el7.centos.src.rpm Build Date : 2019年04月20日 星期六 22时22分05秒 Build Host : localhost Relocations : (not relocatable) URL : www.zabbix.com Summary : zabbix agent Description : Zabbix agentd 4.0.4 [root@localhost ~]# rpm -qpl zabbix_agent-4.0.4-1.el7.centos.x86_64.rpm /etc/profile.d/zabbix_agent.sh /etc/rc.d/init.d/zabbix_agentd /home/zabbix /home/zabbix/bin /home/zabbix/bin/zabbix_get /home/zabbix/bin/zabbix_sender /home/zabbix/etc /home/zabbix/etc/zabbix_agentd.conf /home/zabbix/etc/zabbix_agentd.conf.d /home/zabbix/etc/zabbix_agentd.conf.d/java /home/zabbix/etc/zabbix_agentd.conf.d/monitor_port /home/zabbix/etc/zabbix_agentd.conf.d/monitor_proc /home/zabbix/lib /home/zabbix/lib/modules /home/zabbix/sbin /home/zabbix/sbin/zabbix_agentd /home/zabbix/script /home/zabbix/script/jvm /home/zabbix/script/monitor_port /home/zabbix/script/monitor_proc /home/zabbix/share /home/zabbix/share/man /home/zabbix/share/man/man1 /home/zabbix/share/man/man1/zabbix_get.1 /home/zabbix/share/man/man1/zabbix_sender.1 /home/zabbix/share/man/man8 /home/zabbix/share/man/man8/zabbix_agentd.8 /home/zabbix/zabbix_ssl [root@localhost ~]# rpm -qp --scripts zabbix_agent-4.0.4-1.el7.centos.x86_64.rpm preinstall scriptlet (using /bin/sh): grep zabbix /etc/passwd > /dev/null if [ $? != 0 ] then useradd zabbix -M -s /sbin/nologin fi [ -d /home/zabbix ]||rm -rf /home/zabbix postinstall scriptlet (using /bin/sh): mkdir -p /home/zabbix/logs chown -R zabbix.zabbix /home/zabbix chmod -R 755 /home/zabbix sed -i "s/LogFile=\/tmp\/zabbix_agentd\.log/LogFile=/home/zabbix/logs\/zabbix_agentd.log/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/ServerActive=127\.0\.0\.1/ServerActive=192\.168\.7\.10/g" /home/zabbix/etc/zabbix_agentd.conf ipaddr=`ip a | grep -w "inet" | egrep "eno16777736|eth0" |sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'` sed -i "s/Hostname=Zabbix server/Hostname=$ipaddr/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/Timeout=3/Timeout=30/g" /home/zabbix/etc/zabbix_agentd.conf echo "UnsafeUserParameters=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "EnableRemoteCommands=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "Include=/home/zabbix/etc/zabbix_agentd.conf.d/" >>/home/zabbix/etc/zabbix_agentd.conf echo "PidFile=/home/zabbix/zabbix_agentd.pid" >>/home/zabbix/etc/zabbix_agentd.conf echo "LogFileSize=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "StartAgents=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "HostMetadataItem=system.uname" >>/home/zabbix/etc/zabbix_agentd.conf echo "User=zabbix" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSConnect=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSAccept=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCAFile=/home/zabbix/zabbix_ssl/ca.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCertFile=/home/zabbix/zabbix_ssl/client.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSKeyFile=/home/zabbix/zabbix_ssl/client.key" >>/home/zabbix/etc/zabbix_agentd.conf sed -i "s/BASEDIR=\/usr\/local/BASEDIR=\/home\/zabbix/g" /etc/rc.d/init.d/zabbix_agentd systemctl daemon-reload /etc/init.d/zabbix_agentd start systemctl enable zabbix_agentd preuninstall scriptlet (using /bin/sh): systemctl stop zabbix_agentd postuninstall scriptlet (using /bin/sh): userdel -r zabbix rm -rf /etc/rc.d/init.d/zabbix_agentd rm -rf /home/zabbix
二、fpm方式定制rpm包
fpm工具其实是对rpmbuild进行封装,目的是使打包变成容易。由于此 工具 是 ruby 语言编写的,所以 系统需要安装ruby,且ruby版本号大于1.8.5。
fpm开源项目:
https://github.com/jordansissel/fpm1、安装ruby环境和gem命令(gem命令是从rubygem仓库安装软件,类似yum从yum仓库安装软件)
[root@localhost ~]# yum -y install ruby rubygems ruby-devel gcc
2、查看gem默认源
[root@localhost ~]# gem source list *** CURRENT SOURCES *** https://rubygems.org/
3、添加阿里云rubygems仓库
[root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources
4、移除默认的国外源
[root@localhost ~]# gem sources --remove https://rubygems.org/ https://rubygems.org/ removed from sources
5、查看gem源是否为阿里云
[root@localhost ~]# gem source list *** CURRENT SOURCES *** http://mirrors.aliyun.com/rubygems/
6、安装fpm工具
[root@localhost ~]# gem install fpm Fetching: cabin-0.9.0.gem (100%) Successfully installed cabin-0.9.0 Fetching: backports-3.13.0.gem (100%) Successfully installed backports-3.13.0 Fetching: arr-pm-0.0.10.gem (100%) Successfully installed arr-pm-0.0.10 Fetching: clamp-1.0.1.gem (100%) Successfully installed clamp-1.0.1 Fetching: ffi-1.10.0.gem (100%) Building native extensions. This could take a while... Successfully installed ffi-1.10.0 Fetching: childprocess-0.9.0.gem (100%) Successfully installed childprocess-0.9.0 Fetching: io-like-0.3.0.gem (100%) Successfully installed io-like-0.3.0 Fetching: ruby-xz-0.2.3.gem (100%) Successfully installed ruby-xz-0.2.3 Fetching: stud-0.0.23.gem (100%) Successfully installed stud-0.0.23 Fetching: mustache-0.99.8.gem (100%) Successfully installed mustache-0.99.8 Fetching: insist-1.0.0.gem (100%) Successfully installed insist-1.0.0 Fetching: dotenv-2.7.2.gem (100%) Successfully installed dotenv-2.7.2 Fetching: pleaserun-0.0.30.gem (100%) Successfully installed pleaserun-0.0.30 Fetching: fpm-1.11.0.gem (100%) Successfully installed fpm-1.11.0 Parsing documentation for cabin-0.9.0 Installing ri documentation for cabin-0.9.0 Parsing documentation for backports-3.13.0 Installing ri documentation for backports-3.13.0 Parsing documentation for arr-pm-0.0.10 Installing ri documentation for arr-pm-0.0.10 Parsing documentation for clamp-1.0.1 Installing ri documentation for clamp-1.0.1 Parsing documentation for ffi-1.10.0 Installing ri documentation for ffi-1.10.0 Parsing documentation for childprocess-0.9.0 Installing ri documentation for childprocess-0.9.0 Parsing documentation for io-like-0.3.0 Installing ri documentation for io-like-0.3.0 Parsing documentation for ruby-xz-0.2.3 Installing ri documentation for ruby-xz-0.2.3 Parsing documentation for stud-0.0.23 Installing ri documentation for stud-0.0.23 Parsing documentation for mustache-0.99.8 Installing ri documentation for mustache-0.99.8 Parsing documentation for insist-1.0.0 Installing ri documentation for insist-1.0.0 Parsing documentation for dotenv-2.7.2 Installing ri documentation for dotenv-2.7.2 Parsing documentation for pleaserun-0.0.30 Installing ri documentation for pleaserun-0.0.30 Parsing documentation for fpm-1.11.0 Installing ri documentation for fpm-1.11.0 14 gems installed
题外话:如果操作系统为CentOS6,可能会提示ruby版本问题,这个时候我们指定安装老版本(因为升级到新版本很麻烦)
[root@localhost ~]# gem install fpm Building native extensions. This could take a while... Building native extensions. This could take a while... ERROR: Error installing fpm: ruby-xz requires Ruby version >= 1.9.3. [root@localhost ~]# gem install fpm -v 1.4.0
7、查看版本:
[root@localhost ~]# gem -v 2.0.14.1
8、zabbix agent编辑安装
参考官方cases: https://fpm.readthedocs.io/en/latest/use-cases/make-install.html
编辑安装zabbix agent:
[root@localhost ~]# groupadd zabbix [root@localhost ~]# useradd -g zabbix zabbix [root@localhost ~]# mkdir -p /tmp/installdir [root@localhost ~]# mkdir -p /tmp/installdir/etc/rc.d/init.d/ [root@localhost ~]# mkdir -p /root/soft/ [root@localhost ~]# cd /root/soft/ [root@localhost soft]# yum install pcre pcre-devel openssl openssl-devel -y [root@localhost soft]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz [root@localhost soft]# tar -zxvf zabbix-4.0.4.tar.gz [root@localhost soft]# cd zabbix-4.0.4 [root@localhost zabbix-4.0.4]# ./configure --prefix=/home/zabbix --enable-agent --with-openssl #将程序安装在/tmp/installdir目录,并拷贝定制文件 [root@localhost zabbix-4.0.4]# make install DESTDIR=/tmp/installdir [root@localhost zabbix-4.0.4]# cp /root/soft/zabbix-4.0.4/misc/init.d/fedora/core/zabbix_agentd /tmp/installdir/etc/rc.d/init.d/ [root@localhost zabbix-4.0.4]# vim /tmp/installdir/etc/rc.d/init.d/zabbix_agentd BASEDIR=/home/zabbix #上传LLD监控端口脚本和相关文件 [root@localhost zabbix-4.0.4]# mkdir -p /tmp/installdir/home/zabbix/script/monitor_port [root@localhost zabbix-4.0.4]# cd /tmp/installdir/home/zabbix/script/monitor_port [root@localhost monitor_port]# 上传脚本和相关文件 #上传LLD监控进程脚本和相关文件 [root@localhost zabbix-4.0.4]# mkdir -p /tmp/installdir/home/zabbix/script/monitor_proc [root@localhost zabbix-4.0.4]# cd /tmp/installdir/home/zabbix/script/monitor_proc [root@localhost monitor_proc]# 上传脚本和相关文件 #上传LLD监控jvm脚本和相关文件 [root@localhost zabbix-4.0.4]# mkdir -p /tmp/installdir/home/zabbix/script/jvm [root@localhost zabbix-4.0.4]# cd /tmp/installdir/home/zabbix/script/jvm [root@localhost jvm]# 上传脚本和相关文件 #上传ssl证书文件 [root@localhost zabbix-4.0.4]# mkdir -p /tmp/installdir/home/zabbix/zabbix_ssl [root@localhost zabbix-4.0.4]# cd /tmp/installdir/home/zabbix/zabbix_ssl [root@localhost zabbix_ssl]# 上传ssl证书文件 [root@localhost zabbix-4.0.4]# cd /tmp/installdir/home/zabbix/etc/zabbix_agentd.conf.d/ [root@localhost zabbix_agentd.conf.d]# 上传相关配置文件
9、zabbix agent脚本
#创建安装前的脚本: [root@localhost ~]# vim /root/soft/zabbix-4.0.4/pre_install.sh #!/bin/bash groupadd zabbix useradd -g zabbix zabbix #创建安装后的脚本: [root@localhost ~]# vim /root/soft/zabbix-4.0.4/post_install.sh #!/bin/bash mkdir -p /home/zabbix/logs chown -R zabbix.zabbix /home/zabbix chmod -R 755 /home/zabbix sed -i "s/LogFile=\/tmp\/zabbix_agentd\.log/LogFile=\/home\/zabbix\/logs\/zabbix_agentd.log/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/ServerActive=127\.0\.0\.1/ServerActive=192\.168\.7\.10/g" /home/zabbix/etc/zabbix_agentd.conf ipaddr=`ip a | grep -w "inet" | egrep "eno3|eth0" |sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'` sed -i "s/Hostname=Zabbix server/Hostname=$ipaddr/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/Timeout=3/Timeout=30/g" /home/zabbix/etc/zabbix_agentd.conf echo "UnsafeUserParameters=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "EnableRemoteCommands=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "Include=/home/zabbix/etc/zabbix_agentd.conf.d/" >>/home/zabbix/etc/zabbix_agentd.conf echo "PidFile=/home/zabbix/zabbix_agentd.pid" >>/home/zabbix/etc/zabbix_agentd.conf echo "LogFileSize=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "StartAgents=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "HostMetadataItem=system.uname" >>/home/zabbix/etc/zabbix_agentd.conf echo "User=zabbix" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSConnect=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSAccept=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCAFile=/home/zabbix/zabbix_ssl/ca.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCertFile=/home/zabbix/zabbix_ssl/client.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSKeyFile=/home/zabbix/zabbix_ssl/client.key" >>/home/zabbix/etc/zabbix_agentd.conf systemctl daemon-reload /etc/init.d/zabbix_agentd start systemctl enable zabbix_agentd #创建卸载前的脚本: [root@localhost ~]# vim /root/soft/zabbix-4.0.4/pre_uninstall.sh #!/bin/bash systemctl stop zabbix_agentd #创建卸载后的脚本: [root@localhost ~]# vim /root/soft/zabbix-4.0.4/post_uninstall.sh #!/bin/bash userdel -r zabbix rm -rf /etc/rc.d/init.d/zabbix_agentd rm -rf /home/zabbix
10、打包rpm
#fpm帮助: [root@localhost installdir]# fpm -help #安装rpm-build工具(fpm依赖rpm-build): [root@localhost ~]# yum -y install rpm-build #fpm打包命令: #el6: [root@localhost ~]# fpm -f -s dir -t rpm -n zabbix-agent --epoch 0 -v 4.0.4 -C /tmp/installdir -p /tmp/ -d 'pcre' -d 'pcre-devel' -d 'openssl' -d 'openssl-devel' --verbose --category 'Applications/Internet' --description 'Zabbix Agent' --url 'http://www.zabbix.com/' --license 'BSD' -m 'zabbix' --iteration '1.el7' --pre-install /root/soft/zabbix-4.0.4/pre_install.sh --post-install /root/soft/zabbix-4.0.4/post_install.sh --pre-uninstall /root/soft/zabbix-4.0.4/pre_uninstall.sh --post-uninstall /root/soft/zabbix-4.0.4/post_uninstall.sh --no-rpm-sign #el7: [root@localhost ~]# fpm -f -s dir -t rpm -n zabbix-agent --epoch 0 -v 4.0.4 -C /tmp/installdir -p /tmp/ -d 'pcre' -d 'pcre-devel' -d 'openssl' -d 'openssl-devel' --verbose --category 'Applications/Internet' --description 'Zabbix Agent' --url 'http://www.zabbix.com/' --license 'BSD' -m 'zabbix' --iteration '1.el7' --pre-install /root/soft/zabbix-4.0.4/pre_install.sh --post-install /root/soft/zabbix-4.0.4/post_install.sh --pre-uninstall /root/soft/zabbix-4.0.4/pre_uninstall.sh --post-uninstall /root/soft/zabbix-4.0.4/post_uninstall.sh --no-rpm-sign No args, but -s dir and -C are given, assuming '.' as input {:level=>:info} Setting workdir {:workdir=>"/tmp", :level=>:info} Setting from flags: category=Applications/Internet {:level=>:info} Setting from flags: description=Zabbix Agent {:level=>:info} Setting from flags: epoch=0 {:level=>:info} Setting from flags: iteration=1.el7 {:level=>:info} Setting from flags: license=BSD {:level=>:info} Setting from flags: maintainer=zabbix {:level=>:info} Setting from flags: name=zabbix-agent {:level=>:info} Setting from flags: url=http://www.zabbix.com/ {:level=>:info} Setting from flags: version=4.0.4 {:level=>:info} Converting dir to rpm {:level=>:info} Reading template {:path=>"/usr/local/share/gems/gems/fpm-1.11.0/templates/rpm.erb", :level=>:info} Running rpmbuild {:args=>["rpmbuild", "-bb", "--define", "buildroot /tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72/BUILD", "--define", "_topdir /tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72", "--define", "_sourcedir /tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72", "--define", "_rpmdir /tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72/RPMS", "--define", "_tmppath /tmp", "/tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72/SPECS/zabbix-agent.spec"], :level=>:info} 执行(%prep): /bin/sh -e /tmp/rpm-tmp.hia3sU {:level=>:info} 执行(%build): /bin/sh -e /tmp/rpm-tmp.h3UqVw {:level=>:info} 执行(%install): /bin/sh -e /tmp/rpm-tmp.JwnQo9 {:level=>:info} 处理文件:zabbix-agent-4.0.4-1.el7.x86_64 {:level=>:info} Provides: zabbix-agent = 0:4.0.4-1.el7 zabbix-agent(x86-64) = 0:4.0.4-1.el7 {:level=>:info} Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh {:level=>:info} Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 {:level=>:info} Requires(pre): /bin/sh {:level=>:info} Requires(post): /bin/sh {:level=>:info} Requires(preun): /bin/sh {:level=>:info} Requires(postun): /bin/sh {:level=>:info} 写道:/tmp/package-rpm-build-517c280305ab2eae42f96b512d65d20358a8c8b3917d4073866670c3af72/RPMS/x86_64/zabbix-agent-4.0.4-1.el7.x86_64.rpm {:level=>:info} 执行(%clean): /bin/sh -e /tmp/rpm-tmp.l34fPv {:level=>:info} Created package {:path=>"/tmp/zabbix-agent-4.0.4-1.el7.x86_64.rpm"}
11、验证rpm包
[root@localhost ~]# cd /tmp [root@localhost tmp]# rpm -qpi zabbix-agent-4.0.4-1.el7.x86_64.rpm Name : zabbix-agent Epoch : 0 Version : 4.0.4 Release : 1.el7 Architecture: x86_64 Install Date: (not installed) Group : Applications/Internet Size : 2970841 License : BSD Signature : (none) Source RPM : zabbix-agent-4.0.4-1.el7.src.rpm Build Date : 2019年04月18日 星期四 11时13分27秒 Build Host : localhost Relocations : / Packager : zabbix Vendor : root@localhost.localdomain URL : http://www.zabbix.com/ Summary : Zabbix Agent Description : Zabbix Agent [root@localhost tmp]# rpm -qpl zabbix-agent-4.0.4-1.el7.x86_64.rpm /etc/rc.d/init.d/zabbix_agentd /home/zabbix/bin/zabbix_get /home/zabbix/bin/zabbix_sender /home/zabbix/etc/zabbix_agentd.conf /home/zabbix/etc/zabbix_agentd.conf.d/java /home/zabbix/etc/zabbix_agentd.conf.d/monitor_port /home/zabbix/etc/zabbix_agentd.conf.d/monitor_proc /home/zabbix/lib/modules /home/zabbix/sbin/zabbix_agentd /home/zabbix/script/jvm/cmdline-jmxclient-0.10.3.jar /home/zabbix/script/jvm/jvm.py /home/zabbix/script/jvm/tomcat.py /home/zabbix/script/monitor_port/discovertcpport.sh /home/zabbix/script/monitor_port/portlist.txt /home/zabbix/script/monitor_proc/discoveryproc.sh /home/zabbix/script/monitor_proc/proclist.txt /home/zabbix/share/man/man1/zabbix_get.1 /home/zabbix/share/man/man1/zabbix_sender.1 /home/zabbix/share/man/man8/zabbix_agentd.8 /home/zabbix/zabbix_ssl/ca.crt /home/zabbix/zabbix_ssl/client.crt /home/zabbix/zabbix_ssl/client.key [root@localhost tmp]# rpm -qp --scripts zabbix-agent-4.0.4-1.el7.x86_64.rpm preinstall scriptlet (using /bin/sh): #!/bin/bash groupadd zabbix useradd -g zabbix zabbix postinstall scriptlet (using /bin/sh): #!/bin/bash mkdir -p /home/zabbix/logs chown -R zabbix.zabbix /home/zabbix chmod -R 755 /home/zabbix sed -i "s/LogFile=\/tmp\/zabbix_agentd\.log/LogFile=\/home\/zabbix\/logs\/zabbix_agentd.log/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/ServerActive=127\.0\.0\.1/ServerActive=192\.168\.7\.10/g" /home/zabbix/etc/zabbix_agentd.conf ipaddr=`ip a | grep -w "inet" | grep eno16777736 |sed 's/^.*inet //g'|sed 's/\/[0-9][0-9].*$//g'` sed -i "s/Hostname=Zabbix server/Hostname=$ipaddr/g" /home/zabbix/etc/zabbix_agentd.conf sed -i "s/Timeout=3/Timeout=30/g" /home/zabbix/etc/zabbix_agentd.conf echo "UnsafeUserParameters=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "EnableRemoteCommands=1" >>/home/zabbix/etc/zabbix_agentd.conf echo "Include=/home/zabbix/etc/zabbix_agentd.conf.d/" >>/home/zabbix/etc/zabbix_agentd.conf echo "PidFile=/home/zabbix/zabbix_agentd.pid" >>/home/zabbix/etc/zabbix_agentd.conf echo "LogFileSize=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "StartAgents=0" >>/home/zabbix/etc/zabbix_agentd.conf echo "HostMetadataItem=system.uname" >>/home/zabbix/etc/zabbix_agentd.conf echo "User=zabbix" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSConnect=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSAccept=cert" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCAFile=/home/zabbix/zabbix_ssl/ca.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSCertFile=/home/zabbix/zabbix_ssl/client.crt" >>/home/zabbix/etc/zabbix_agentd.conf echo "TLSKeyFile=/home/zabbix/zabbix_ssl/client.key" >>/home/zabbix/etc/zabbix_agentd.conf systemctl daemon-reload systemctl start zabbix_agentd systemctl enable zabbix_agentd preuninstall scriptlet (using /bin/sh): #!/bin/bash systemctl stop zabbix_agentd pkill -9 zabbix_agentd postuninstall scriptlet (using /bin/sh): #!/bin/bash userdel -r zabbix rm -rf /etc/rc.d/init.d/zabbix_agentd rm -rf /home/zabbix
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 强大的姿势感知模型用于姿势不变的人脸识别
- 从姿势到图像——基于人体姿势引导的时尚图像生成算法
- 定制优化 Nextcloud 镜像
- goim 架构与定制
- “私人定制” CLI 工具
- Docker 定制镜像
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Intersectional Internet
Safiya Umoja Noble、Brendesha M. Tynes / Peter Lang Publishing / 2016
From race, sex, class, and culture, the multidisciplinary field of Internet studies needs theoretical and methodological approaches that allow us to question the organization of social relations that ......一起来看看 《The Intersectional Internet》 这本书的介绍吧!