一键自动化部署(定制rpm包)-创新互联

部署--前篇   

秦皇岛ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

    上午将MySQL多实例部署完成,由于有公司特定一些需求,需要源码安装,现在需要批量部署,如果一台台部署,就太过麻烦,而且浪费时间,这个时候自动化部署 就体现出价值了

   我们将MySQL制作定制化rpm包,然后放到我们的yum仓库中,在将yum所有客户端,都指向yum源,之后就是喝喝茶,看看片,轻松批量部署了,废话不多说,开干。

 如果MySQL多实例还没配置的,或不了解软件的安装方式 的

 请参考:http://qiuyt.blog.51cto.com/1229789/1920686

# 博主新的博客地址: https://www.dgstack.cn/ 进入有惊喜哦~~ 欢迎收藏

一、Yum安装介绍

  yum就是{Yellow dog Updater, Modified} ×××的狗,用来针对rpm包的管理器。

它的优点:简单、高效,解决依赖问题;缺点:前期定制包复杂

二、制作rpm包

FPM的作者是jordansissel

FPM的github:https://github.com/jordansissel/fpm

FPM功能简单说就是将一种类型的包转换成另一种类型

rpm:redhat 包管理器,具有升级、查询、验证,安装,卸载等5大功能;

可通过rpm --help 获取帮助信息 ##--hep用来查看系统内置参数

 1,rpm 支持那些包的转换?

 源类型包:

    dir :将目录打包成rpm包,就是将编译安装好的目录,直接打包,到对端就相当于安装目录解压。     rpm:对rpm进行转换     gem:对rubygem进行转换     pythom :将python包打包成相应的类型

 目标类型包:可以转发成什么类型的包

    rpm         转换为rpm包     deb         转换为deb包     solaris       转换为solaris包     puppet       转换为puppet模块

 2,安装FPM打包工具

 1)安装ruby模块

 yum -y install ruby rubygems ruby-devel  gem sources list  # 查看当前使用的rubygems仓库

  2)更新yum源

 注:添加国内的 淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库

gem sources --add http://gems.ruby-china.org --remove http://rubygems.org/

  3)安装fpm及json依赖包

gem install json -v 1.8.3 gem install fpm -v 1.3.3

    gem从rubygem仓库安装软件类似yum从yum仓库安装软件。首先安装低版本的json,高版本的json需要ruby2.0以上,然后安装低版本的fpm,够用就行。

# 上面的2步安装仅适合CentOS6系统,CentOS7系统一步搞定,即gem install fpm

 4)验证

rpm --help  #如果有输出代表安装成功

3,FPM参数说明

详细使用见fpm –help

常用参数 -s          指定源类型  (例如dir 目录) -t          指定目标类型,即想要制作为什么包 (比如想做个rpm包) -n          指定包的名字 ,-name  -v          指定包的版本号  (用于区分rpm,有同名字但版本不同) -C          指定打包的相对路径  Change directory to here before searching forfiles -d          指定依赖于哪些包 -f          第二次打包时目录下如果有同名安装包存在,则强制覆盖它 -p          输出的安装包的目录,不想放在当前目录下就需要指定 --post-install      执行rpm包之后所要运行的脚本;同--after-install --pre-install      软件包安装完成之前所要运行的脚本;同--before-install --post-uninstall    软件包卸载完成之后所要运行的脚本;同--after-remove --pre-uninstall     软件包卸载完成之前所要运行的脚本;同--before-remove

4,定制MySQL rpm包

用法:rpm包执行前运行的脚本 + rpm包 + rpm包执行后脚本

我们这个myslq 之前是编译安装的,所以rpm包运行前脚本没有,直接考虑哪些目录需要打包

1,确认打包目录

rpm需要打包的目录有哪些:(从你编译安装过程中查看哪些需要打包)

/data 目录 ##这个是多实例的数据存放目录 /application/mysql-5.5.32/   #这个是mysql安装目录

2,创建脚本

打包后需要执行的命令,放入脚本中(从你编译安装过程中查看哪些命令需要解压目录后执行)

确认后,创建脚本 mkdir -p /server/scripts && cd /server/scripts cat >>mysql_rpm.sh<>/etc/rc.local  #添加开机自启动 echo "/data/3306/mysql start " >>/etc/rc.local   echo "/data/3307/mysql start " >>/etc/rc.local EOF

3,生成rpm包

将目录打包(rpm包,包内包含脚本及目录)(前面是框 后面是苹果)

1)Mysql定制rpm包

[root@db02 scripts]# fpm -s dir -t rpm -n mysql -v5.5.32  --post-install /server/scripts/mysql_rpm.sh -f /data/ /application/mysql-5.5.32/ no value for epoch is set, defaulting to nil {:level=>:warn} no value for epoch is set, defaulting to nil {:level=>:warn} Created package {:path=>"mysql-5.5.32-1.x86_64.rpm"} [root@db02 scripts]# ls mysql-5.5.32-1.x86_64.rpm  mysql_rpm.sh #-s 指定目录类型 -t 指定打包类型 -n指定rpm包名 -v 版本号  --post-install 打包后执行的脚本  -f 指定要打包的目录路径 #注意打包要使用相对路径问题

2)站点部署www bbs blog

fpm -s dir -t rpm -n three_web -v 1.0    -f /application/nginx/html/

3)LB负载均衡

fpm -s dir -t rpm -n lb -v 1.8.1 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/install_LB.sh -f  /application/nginx-1.8.1/ lb-1.8.1-1.x86_64

三、查看rpm包内的信息

rpm -qp --scripts  mysql-5.5.32-1.x86_64.rpm     #查看包内脚本信息 rpm -qpl mysql-5.5.32-1.x86_64.rpm      ##查看rpm包内包含哪些文件及目录

注意:mysql这个目录比较大,用fpm打包耗时长。平时我们有可能需要对nginx或php做优化,这样又得重新打包。因此我们可以将mysql分离出来,分别打包。只需在制作nginx+php的rpm包时添加mysql的依赖即可。

四、放入YUM仓库,客户端一键安装测试

    1)上传rpm包到yum仓库

scp mysql-5.5.32-1.x86_64.rpm root@172.16.1.101:/application/yum/centos6.8/x86_64 #我这里yum仓库为内网使用IP地址:172.16.1.101,如果没有*** 可以考虑先给个外网IP10.0.0.101

一键自动化部署(定制rpm包)

  2) 更新yum仓库list

[root@Qiuyuetao x86_64]# createrepo --update /application/yum/centos6.8/x86_64/ rpm包名:mysql-5.5.32-1.x86_64.rpm

  3)一键部署Mysql(客户端)

#开启一台新的设备,配置yum仓库客户端 cd /etc/yum.repos.d mkdir yum_bak && mv *repo yum_bak cat >>oldboy.repo<

一键自动化部署(定制rpm包)

测试MySQL 登录

[root@db01 ~]# netstat -lntup|grep 33 tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2812/mysqld          tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      2833/mysqld [root@db01 ~]# mysql -uroot -S /data/3306/mysql.sock  Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.32-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | performance_schema | | test               | +--------------------+ 4 rows in set (0.03 sec) ##为安全起见设置myslq密码 及 删除无用账户,权限最小化 设置等等都可自行配置了 过段时间我也会,写一篇关于mysql安全的帖子,请您多多支持,多多关注,谢谢。 如有问题随时留言,沟通,感谢!!!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:一键自动化部署(定制rpm包)-创新互联
网站网址:http://csdahua.cn/article/ddoepi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流