rpm+rpmbuild+yum仓库

介绍

本章节以node_exporter为例子

初始化环境

yum -y install rpm-build
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

打包

cd ~/rpmbuild/RPMS/
tree
.
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
│   └── node_exporter-0.17.0.tar.gz
├── SPECS
│   └── nodenode_exporter.spec
└── SRPMS
    └── node_exporter-0.17.0-1.src.rpm

cat> SPECS/nodenode_exporter.spec <<EOF
Name: node_exporter	
Version:       0.17.0
Release:	1
Summary:	node_exporter install package
License:    GPL
Source:    node_exporter-0.17.0.tar.gz
%description
node_exporter install package
%prep
%setup -q
%build
cat >/usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_expoter sends log files to Logstash or directly to Elasticsearch.
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/node_exporter-0.17.0/node_exporter
Restart=always
[Install]
WantedBy=multi-user.target
EOF
%preun
echo "卸载前清理"
systemctl disable node_exporter.service
systemctl stop node_exporter.service
%postun
echo "卸载删除"
rm -rf /usr/lib/systemd/system/node_exporter.service 
rm -rf /usr/local/node_exporter-0.17.0/

%pre
echo "安装前检测环境变量"
%install
echo "安装"
cp -rf  %{_builddir}/node_exporter-0.17.0  /usr/local/node_exporter-0.17.0

%post
echo "安装后"
echo $HOSTNAME
systemctl disable node_exporter.service
systemctl start node_exporter.service

%files
%doc
%changelog

EOF

  rpmbuild -ba SPECS/nodenode_exporter.spec 

分发

ansible -i host all  -m copy -a "src=/root/rpmbuild/RPMS  dest=/root/"
 

部署和卸载

#安装
ansible -i host all  -m copy -a "rpm -ivh node_exporter-0.17.0-1.x86_64.rpm"

#卸载
 
 ansible -i host all  -m copy -a "rpm -e node_exporter-0.17.0-1.x86_64"

通过yum仓库部署

createrepo /root/rpmbuild/RPMS/
python -m SimpleHTTPServer 80

cat /etc/yum.repos.d/local.repo 
[local]
name=localyum
baseurl=http://172.16.0.144:80/
enabled=1
gpgcheck=0



#打包
while true; do echo 1 ; sleep 1; done

#更新仓库
createrepo /root/rpmbuild/RPMS/

#yum makecache && yum update 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值