文件目录结构
└── neutron-vmware-ovs-agent-1.1
└── usr
├── bin
│ └── neutron-vmware-ovs-agent
└── lib
├── python2.7
│ └── site-packages
│ └── neutron
│ └── agent
│ └── vmware_ovs_agent.py
└── systemd
└── system
└── neutron-vmware-ovs-agent.service
一、安装rpmbuild工具
yum install rpm-build
二、创建普通用户并切换到普通用户
useradd zxg
passwd zxg
su zxg
三、创建rmpbuild工作目录结构
mkdir -p /home/zxg/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
四、将以下agent.spec放置在/home/zxg/rpmbuild/SPECS目录下
Name: neutron-vmware-ovs-agent
Version: 1.1
Release: 1
Summary: for vmware port bindint
Group: TESTGROUP
License: GPL
Source0: %{name}-%{version}.tar.gz
%define _unpackaged_files_terminate_build 0
%description
This package will make a fake ovs agent which runs on vmware platform to bind ports of vms.
%prep
%setup -n %{name}-%{version}
%install
mkdir -p ${RPM_BUILD_ROOT}/usr/lib/systemd/system
mkdir -p ${RPM_BUILD_ROOT}/usr/bin
mkdir -p ${RPM_BUILD_ROOT}/usr/lib/python2.7/site-packages/neutron/agent
mkdir -p ${RPM_BUILD_ROOT}/etc/systemd/system/multi-user.target.wants/
ln -s /usr/lib/systemd/system/neutron-vmware-ovs-agent.service ${RPM_BUILD_ROOT}/etc/systemd/system/multi-user.target.wants/neutron-vmware-ovs-agent.service
cp %{_builddir}/%{name}-%{version}/usr/lib/systemd/system/neutron-vmware-ovs-agent.service ${RPM_BUILD_ROOT}/usr/lib/systemd/system/neutron-vmware-ovs-agent.service
cp %{_builddir}/%{name}-%{version}/usr/bin/neutron-vmware-ovs-agent ${RPM_BUILD_ROOT}/usr/bin/neutron-vmware-ovs-agent
cp %{_builddir}/%{name}-%{version}/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py ${RPM_BUILD_ROOT}/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py
chmod a+x ${RPM_BUILD_ROOT}/usr/bin/neutron-vmware-ovs-agent
%clean
rm -rf %{buildroot}
%post
systemctl start neutron-vmware-ovs-agent.service
%files
/etc/systemd/system/multi-user.target.wants/neutron-vmware-ovs-agent.service
/usr/bin/neutron-vmware-ovs-agent
/usr/lib/systemd/system/neutron-vmware-ovs-agent.service
/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py
%preun
systemctl stop neutron-vmware-ovs-agent.service
%postun
systemctl daemon-reload
五、将neutron-vmware-ovs-agent-1.1压缩成tar.gz包并放置到/home/zxg/rpmbuild/SOURCES/目录下
tar -cvzpf neutron-vmware-ovs-agent-1.1.tar.gz neutron-vmware-ovs-agent-1.1/
mv neutron-vmware-ovs-agent-1.1 /home/zxg/rpmbuild/SOURCES/
六、进入/home/zxg/rpmbuild/SPECS/目录,编译rpm包
rpmbuild -bb agent.spec