美文网首页Linux系统监控
prometheus监控节点node_exporter rpm包

prometheus监控节点node_exporter rpm包

作者: zoushiwen | 来源:发表于2019-03-05 14:15 被阅读129次

    rpm 制作

    制作rpm安装包

    1.查看rpmbuild目录

    [root@q11883v SPECS]# 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
    

    2.创建工作目录

    1. #定义工作目录(或车间)吧
    vi ~/.rpmmacros 
    %_topdir   /home/rpmuser/rpmbuild    ##目录可以自定义 
    
      
    2. #在topdir下建立需要的目录
    mkdir ~/rpmbuild
    cd ~/rpmbuild  
    mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} 
    
    

    3.整理源码

    rpmbuild安装完成以后我门就需要将我们的源码放到 SOURCE 文件夹下
    

    4.编写spec文件
    在SPECS文件夹下新建 xxx.spec 打包脚本,其实也就是把我门的源码编译打包成rpm 的一个过程

    vi  node_exporter.spec 
    
    Name:       node_exporter       #名字为源码tar.gz 包的名字 
    Version:    0.17.0              #版本号,一定要与tar.gz包的一致哦 
    Release:    1%{?dist}           #释出号,也就是第几次制作rpm 
    Summary:    node_exporter       #软件包简介,最好不要超过50字符 
    
    Group:      prometheus
    License:    GPL                 #许可,GPL还是BSD等
    URL:        http://prometheus.io
    Source0:    node_exporter-0.17.0.tar.gz     #定义用到的source,也就是你的源码
    BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)      #这个是软件make install 的测试安装目录.
    
    BuildRequires:  daemonize      #制作过程中用到的软件包 
    Requires:   daemonize          #软件运行依赖的软件包,也可以指定最低版本如 bash >= 1.1.1
    
    %description                    #描述,随便写     
    prometheus agent package
    
    
    %prep                           #打包开始
    %setup -q                       #这个作用静默模式解压并cd 
    
    
    %build                          #编译制作阶段,主要目的就是编译,如果不用编译就为空 
    %install                         #安装阶段   
    rm -rf %{buildroot}             #先删除原来的安装的,如果你不是第一次安装的话 
    install -d %{buildroot}/usr/local/%{name}       #创建目录
    install -p -D %{_builddir}/%{name}-%{version}/node_exporter  #拷贝文件  %{buildroot}/usr/local/%{name}/node_exporter
    
    #下面的几步pre、post、preun、postun 没必要可以不写 
    %pre        #rpm安装前制行的脚本 
    
    %post       #安装后执行的脚本 
    
    %preun      #卸载前执行的脚本 
    
    %postun     #卸载后执行的脚本
    
    %clean  #清理段,删除buildroot 
    rm -rf %{buildroot}
    
    
    %files
    %defattr(-,root,root,-)
    /usr/local/%{name}
    
    
    
    %changelog
    
    

    语法

    如果目标文件存在:
    
    install :  install会先删除原先的文件然后写入新文件;
    cp:        cp会清空文件后往里面写入新文件;    
    
    @install -d /usr/bin
    @install -p -D -m 0755 targets /usr/bin
    
    相当于
    @mkdir -p /usr/bin
    @cp targets /usr/bin
    @chmod 755 /usr/bin/targets
    @touch /usr/bin/tagets       <---- 更新文件时间戳
    

    打包

    spec 文件编写好以后就可以进行打包了,在SPECS文件夹下执行命令:

    rpmbuild -bb node_exporter.spec
    
    ## 查看rpmbuild生成rpm详细信息
    rpm -qpi RPMS/x86_64/node_exporter-0.17.0-1.el6.x86_64.rpm
    

    注意

    
    在生成rpm包同时,还会生成debuginfo包,如果要避免生成debuginfo包:这个是默认会生成的rpm包。则可以使用下面的命令:
        echo '%debug_package %{nil}' >> ~/.rpmmacros
    把%debug_package %{nil} 追加到 ~/.rpmmacros 文件中便可
    

    参考

    下载node_exporter安装包

    相关文章

      网友评论

        本文标题:prometheus监控节点node_exporter rpm包

        本文链接:https://www.haomeiwen.com/subject/dfonuqtx.html