LNMP环境搭建之--YUM仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP环境搭建之--YUM仓库相关的知识,希望对你有一定的参考价值。

前言:

       其实快速完成集群环境交付的技术方案有很多,有最原始的编译-tar-scp分发-解压;有自动化工具

saltstack、puppet、Ansible的批量部署;也有高大上的openstack虚拟机镜像和docker容器分发技术。环境越复杂,技术要求就越来越高,想学更自动化的工具技术也得弄懂简单环境快速部署原理,硅步千里。

一、为什么要搭建yum仓库

      对比Linux安装软件的三种方式

      1)编译安装:编译参数复杂、编译计算耗时长

      2)yum安装:完全自动化,解决所有软件依赖问题;但是软件安装不能自定义,且安装依赖网络

      3)定制RPM+yum:结合了前面两者的优点,搭建在本地集群环境,部署速度快。

二、搭建思路

      技术分享三、搭建过程

     1)FPM安装

yum -y install ruby rubygems ruby-devel

gem sources -a http://mirrors.aliyun.com/rubygems/

gem sources --remove http://rubygems.org/

gem install fpm -v 1.3.3              #测试环境1.3.3应该是centos6.7稳定版本,其他环境仅参考                      

   #FPM实质上是调用rpmbuild工具实现一条命令打包,有点类似于windows上inno setup打包..

     2)定制RPM包(以nginx为例)

###清空yum安装缓存路径,安装完软件依赖包后拷贝出来所有的rpm依赖包###

mkdir /application/tools -p

sed -i ‘s#keepcache=0#keepscache=1#g‘/etc/yum.conf

find /var/cache -type f -name"*rpm"|xargs rm -f

yum install -y pcre-devel openssl-devel

find /var/cache -type f -name"*rpm"|xargs cp -t /tmp/

cd /tmp/

tar zcf nginx_rpm.tar.gz *rpm

###创建一个安装完软件后需要执行的相关命令脚本###

mkdir -p /server/scripts/

cd /server/scripts/

cat >>nginx_rpm.sh<<EOF

#!/bin/bash

useradd www -s /sbin/nologin -M

ln -s /application/nginx-1.6.3//application/nginx

EOF

###编译安装Nginx###

cd ~/tools/

tar xf nginx-1.6.3.tar.gz

cd nginx-1.6.3

./configure --user=www --group=www--with-http_ssl_module --with-http_stub_status_module --prefix=/application/nginx-1.6.3/

make && make install

###FPM打包###

fpm -s dir -t rpm -n nginx -v 1.6.3 -d‘pcre-devel,openssl-devel‘ --post-install /server/scripts/nginx_rpm.sh -f/application/nginx-1.6.3/

# -s 源文件格式,-t 目标格式,-n 包名,-v 版本,-d 指定依赖包(这个很关键,以后yum安装nginx时会自动安装这里的依赖包),--post-install 编译安装完成后需要执行的脚本(如创建用户、软链接等),-f  源文件地址(必须使用绝对地址,不能使用软链接,不然会打包出错!)

sz nginx-1.6.3-1.x86_64.rpm

   #打包完成后

          rpm -qpi nginx-1.6.3-1.x86_64.rpm                 #查看包内容

          rpm -qpR nginx-1.6.3-1.x86_64.rpm                #查看包依赖

          rpm -qp --scripts nginx-1.6.3-1.x86_64.rpm   #查看包脚本

          rpm -ivh nginx-1.6.3-1.x86_64.rpm                 #安装rpm包

             rpm-ivh --aid *.rpm                                              #解决安装包循环依赖的问题

        3)yum仓库

###创建一个目录专用放rpm包,也就是yum仓库文件夹了###

mkdir -p /application/yum/centos/x86_64

rz nginx_yum.tar.gz

rz nginx-1.6.3-1.x86_64.rpm

tar xf nginx_yum.tar.gz

###初始化repodata###

yum install -y createrepo

createrepo -pdo /application/yum/centos/x86_64//application/yum/centos/x86_64/

###每次加入新的rpm包都需要更新yum仓库数据库###

createrepo --update/application/yum/centos/x86_64/

python -m SimpleHTTPServer 80 &>/dev/null&        #用Python模块启动http服务

netstat -antulp|grep 80

技术分享      4)客户端配置 

cd /etc/yum.repos.d

mkdir -p repo_back && mv *reporepo_back/

cat >>new.repo<<EOF                    #创建新的repo安装源文件

[new]                                                

name=server                     

baseurl=http://10.0.0.101                #yum仓库地址

enable=1                                         #1代表开启地址

gpgcheck=0                                     #yum软件校验,0非

EOF

yum clean all                                  #清楚yum安装缓存

yum list

lrzsz.x86_64                       0.12.20-27.1.el6           new      #能看到新建的new安装yum仓库名

···

   5)总结

             至此,yum仓库的搭建流程大概就是以上了,后续可以按照此方法自定义phpmysql安装RPM包,加入LNMP环境,一键搭建速度将大大提高,听说最快的2分钟就搞定了~

以上是关于LNMP环境搭建之--YUM仓库的主要内容,如果未能解决你的问题,请参考以下文章

linux入门系列20--Web服务之LNMP架构实战

LNMP环境搭建教程及linux常用命令及问题

centos7.2 搭建lnmp环境(转)

003-LNMP之PHP环境搭建

LNMP环境搭建

linux环境搭建lnmp环境