前两天一直没更新今天更新下,将keepalived跟nginx打成rpm安装包,打包的时候纠结是否要在打包的时候编译还是怎么搞,最后直接把文件打个包,发现能用哈哈哈,属实整笑了!
Nginx+Keepalive打成rpm安装包
之前已经安装编译好nginx跟keepalived了,所以直接在将两个文件夹打包,编写下启动服务及Spec文件打包即可。
配置讲解
meethong.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
Name: meethong
Version:1.0
Release: 1
Summary: proxy
Group: Applications/Engineering
License: GPL
AutoReqProv:no
Source0:demo.tar.gz #压缩的文件夹包
Source1:nginx.service #nginx启停的服务脚本
Source2:nginx.conf #nginx的配置文件
Source3:keepalived.conf #keepalived的配置文件
Source4:keepalived.service #keepalived启停的服务脚本
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
%description
This package is proxyserver Setup Program.
Prefix: /opt #安装路径
%define userpath /opt
%define ppath /opt
%define nginxpath /opt/meethong/nginx/conf
%define keppath /etc/keepalived
%define initd /usr/lib/systemd/system
#%define 定义文件路径
%prep
%setup -b 0 -c -n meethong #将第一个文件 解压成meethong
%install 安装
install -d $RPM_BUILD_ROOT%{ppath}
install -d $RPM_BUILD_ROOT%{initd}
cp -a $RPM_BUILD_DIR/%{name}* $RPM_BUILD_ROOT%{ppath}
%{__install} -p -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{initd}/nginx.service
#安装并赋予权限
%{__install} -p -D -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{nginxpath}/nginx.conf
%{__install} -p -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{initd}/nginx.service
%{__install} -p -D -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{keppath}/keepalived.conf
%{__install} -p -D -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{initd}/keepalived.service
%pre
mkdir -p /etc/keepalived
#安装前
%post
systemctl enable keepalived
systemctl enable nginx
#安装后
%preun
systemctl stop keepalived
systemctl stop nginx
systemctl disable keepalived
systemctl disable nginx
rm -rf /opt/meethong/nginx
rm -rf /opt/meethong/keepalived
rm -rf /etc/keepalived
#卸载
%files #用到的文件
%{ppath}
%{nginxpath}
%{initd}
%{keppath}
%clean
rm -rf /opt/meethong/nginx
rm -rf /opt/meethong/keepalived
rm -rf /etc/keepalived
%changelog
|
nginx.service
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[Unit]
Description=nginx
After=network-online.target syslog.target
Wants=network-online.target
[Service]
Type=forking
KillMode=process
ExecStart=/opt/meethong/nginx/sbin/nginx -c /opt/meethong/nginx/conf/nginx.conf
ExecReload=killall nginx
[Install]
WantedBy=multi-user.target
|
keepalived.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/opt/meethong/keepalived/etc/sysconfig/keepalived
ExecStart=/opt/meethong/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
|