linux 上一些软件包的安装,往往需要很多手工介入的安装步骤,不利于进行大规模集群部署,而且免不了对一些软件需要定制化改造的需求,需要源码安装。如果需要一台台地去编译安装,那么运维就不用出机房了
文章以mysql打包构建为例,实现 基于源码构建定制化rpm包 和基于 二进制安装包构建rpm包 两种方式的的打包
打包好了,将该rpm包发布到构建的本地yum源,集群中所有机器一个yum install 命令就可以搞定了。如何在本地搭建yum源,可以见上一篇文章:自动化部署 - 构建YUM本地源
linux 上一些软件包的安装,往往需要很多手工介入的安装步骤,不利于进行大规模集群部署,而且免不了对一些软件需要定制化改造的需求,需要源码安装。如果需要一台台地去编译安装,那么运维就不用出机房了
文章以mysql打包构建为例,实现 基于源码构建定制化rpm包 和基于 二进制安装包构建rpm包 两种方式的的打包
打包好了,将该rpm包发布到构建的本地yum源,集群中所有机器一个yum install 命令就可以搞定了。如何在本地搭建yum源,可以见上一篇文章:自动化部署 - 构建YUM本地源
学会打rpm包后(见如何利用rpm-maven-plugin打包前后端项目,那么接着就是在本地集群构建yum源了
文章包含两个部分:一是自动脚本构建 yum源,二是分发yum源配置,使得整个集群yum安装从本地源拉取
相比较而言,本地YUM源服务器最大优点在局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件升级和安装
构建本地yum源适用于以下场景:
本地源配置的三种方式
因为有本地化部署的需求,且客户现场没有网络环境,所以稍微了解和构建下 CentOS光盘和 自定义本地源两种方式,最后通过构建脚本自动构建yum本地源,且通过分发脚本将yum源配置同步到集群的各台机器
原理 从服务器A登录到服务器B,借用网上的一张图片
具体的操作:
A上面生成私钥公钥对,拷贝公钥内容追加写入到B的授权文件/root/.ssh/authorized_keys。
上面的是单机操作,如果应对到几台/几十台的集群配置,手动去配置,那么需要配置n x 3次,这酸爽,手动表情[哭笑不得]
以下通过一个shell脚本,自动生成各台机器的id_rsa密钥对,并将所有机器的公钥写入到文件中,再自动将该文件内容分发到所有服务器并且将文件内容追加写入到authorized_keys文件
RPM全称是 Red Hat Package Manager(Red Hat包管理器)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。
在devops链条上,常见的部署方式是通过持续集成工具如jenkins/CI 构建和发布jar包到服务端制定目录。不过随着越来越多的应用趋向于paas 平台,本地化自动部署的需求越来越多,在软件包的安装过程中各种自动控制命令的集成也越来越复杂,jenkins等部署方式已经无法满足需求,这时候将软件包和集成脚本一起打包成rpm包的形式,也是一种另外的思路。对于最终用户来说,使用 RPM所提供的功能来维护系统是比较容易和轻松的。安装、卸载和升级RPM软件包只需一条命令就能搞定。
后续还可以构建yum本地源,通过ambari等其他集成工具,进行对软件包的安装、管理、监控、卸载、升级全生命周期的管控
利用rpm-maven-plugin插件实现rpm构建,以便于RPM软件仓库管理。
包含四个部分:
备注:
rpm-maven-plugin 需要在linux 机器上才能正常运行,运行机器需要
1 | yum install rpm-build |
用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。
在ServerA,ssh-keygen -t rsa ,三次回车生成id_rsa,在~/.ssh/目录下会生成id_rsa(私钥) id_rsa.pub(公钥)这两个文件;然后将公钥拷贝到
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub root@ServerB:~/.ssh/authorized_keys登陆ServerB,变更~/.ssh/authorized_keys 权限
chmod 600 ~/.ssh/authorized_keys这样就可以在ServerA免密登陆ServerB了。authorized_keys可以放多个公钥,那时就不能用scp命令了。
linux 下3个有趣的小工具,用来生成 banner字符图案:
banner: 使用#来组成
figlet: 使用-,等普通字符生成
toilet:使用一些复杂的彩色特殊字符生成
用了JumperServer后,每次要连远程服务器,需要选一次私钥文件,输入两次密码,输入一次ip,非常麻烦,能不能一个简短的指令就搞定呢?答案是可以的
简化步骤:
Update your browser to view this website correctly. Update my browser now