从软件部署看运维的四种境界

首先,博文的名字很难取啊,叫什么都感觉不太对,这里就暂定这样吧。不可否认这里有点哗众取宠的动机,不谈境界总感觉格局不够大哈。

中国哲学家冯友兰先生说过,人生有四种境界:自然境界、功利境界、道德境界、天地境界。经过长期的部署安装软件服务,感觉最近手熟多了,通过实践可以得出一些方法,方法总结起来

就可以组成一套方法论了,但作为国人,还是用格局,境界之类的词更有亲切感。

不多说废话了,下面上干货。(我所理解的干货,也可能不是,牛人请忽略)

下面通过具体的安装redis这个小软件来说明问题,我分别附上四种安装方法从而感悟出四种不同的境界。

一,传统手动安装(著名的三板斧)

config

make

make install

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar -zxvf redis-2.8.17.tar.gz

cd  redis-2.8.17.tar.gz

先安装tcl,否则下面会报错

yum install tcl -y

make MALLOC=libc

make test

make install

/root/redis-2.8.17/utils/install_server.sh

Welcome to the redis service installer

This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]

Selecting default: 6379

Please select the redis config file name [/etc/redis/6379.conf]

Selected default - /etc/redis/6379.conf

Please select the redis log file name [/var/log/redis_6379.log] /data/redis/redis_6379.log

Please select the data directory for this instance [/var/lib/redis/6379] /data/redis/6379

Please select the redis executable path [/usr/local/bin/redis-server]

Selected config:

Port           : 6379

Config file    : /etc/redis/6379.conf

Log file       : /data/redis/redis_6379.log

Data dir       : /data/redis/6379

Executable     : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli

Is this ok? Then press ENTER to go on or Ctrl-C to abort.

Copied /tmp/6379.conf => /etc/init.d/redis_6379

Installing service...

Successfully added to chkconfig!

Successfully added to runlevels 345!

Starting Redis server...

Installation successful!

这种传统安装方法主要是费时,例如想redis这个1M多的小软件安装多花费了半个多小时,这种方法类似冯友兰的自然境界。这种方法有一个好处就是能让你快速熟悉一个陌生的软件,第一次

安装不得不走一遍这样的流程。

二,脚本安装

随着时间的推移,服务器越来越多,自己每天都重复这样的工作是不是觉得很烦,很没有技术含量不能提高呢?大部分运维人员都不会满足于现状,特别是当老板说找一个快速部署的方法奖

励2K时,是不是动力来了,此时天时地利人和都来了,于是就开始想办法了,大部分人最先想到的就是脚本。

关于脚本呢,我本人bash都不是很熟,但是拷贝修改别人的还可以,更别说3P(别想错了,好多人说要学会python,perl,php),如果你是天生的技术高手这些都会或者会一两种当然是最好了。

如果对3P不感兴趣或者力不从心也没关系,只要学会shell就行了,至少这个阶段够用。

只安装redis这一个服务弄一个脚本其实还显现不出脚本此时的好处,要是一个LNMP环境,脚本的优势就突显出来了,键盘Enter键一敲,你就可以去喝咖啡了,但是这时候一般你还有其他事

情,两个小时后基本环境就完成了。

要是redis真写一个简单的脚本,就是上述命令行之前加一个#!/bin/bash就行了。

#!/bin/bash

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar -zxf redis-2.8.17.tar.gz

cd  redis-2.8.17.tar.gz

yum install tcl -y |tail -n 6

make MALLOC=libc   |tail -n 6

make test          |tail -n 6

make install   |tail -n 6

/root/redis-2.8.17/utils/install_server.sh

友情提示:这脚本我没有试用过,不一定能用。因为这时我对这种安装方式还不是很满意。

三,绿色安装

绿色安装,这个词我以前听到最多是windows环境下,linux下倒是很少听说,难道linux喜欢难度高的操作方法对简单易行的方法不感冒吗?哪这样是不是有点不道德啊?所谓的道德境界我觉

得应该是这样的:把复杂的事情简单化,越简单越好。我不认为简单是没有技术含量,简单是我一生追求的最高境界。

说到这里,那有什么根基支持绿色安装了,其实我想我有一段时间忘记了一句含义很深的话:一切皆文件!我记得刚开始学习linux时候就听说过这句话,但是一直没有时常想起这句话。以至

于曾经走过不少弯路。话说回来,不走这么多的弯路,对这句话的领悟也不会这么深。

回到正题,绿色安装就是把第一次在一个环境安装的软件包,打个包,拷贝过来就行了。比如这里的redis只需要拷贝二进制程序和配置文件即可,二进制程序唯一要依赖的就是一些开发库之

类的软件。这个得提前安装。

yum install tcl -y

mkdir /etc/redis

ls /etc/redis

6379.conf

ls /etc/init.d

redis_6379

tar zxvf redis_data.tar.gz  -C /

tar zxvf redis.2.7.17.tar.gz -C /

这里redis第一次安装分布了几个目录,如果第一次安装时指定了安装目录,只需要拷贝那一个整目录过来就行了。是不是很简单啊?

4,克隆模板

第四种境界叫天地境界,用在这里有点亵渎的感觉,但是管不了那么多了,为了博文的完整性我已经很拼了。天地境界我理解的是天人合一,难道让我们人机合一不成?那么深奥的问题我也

考虑不了,都说了我很简单的。幸亏现在虚拟化技术很发达,千万不要说云计算啊我对哪个比较过敏,我还没有看到哪个搞云计算的活人在我面前呢。

其实这种方法和第三种差不多,只是这种连系统一块都部署了,操作系统不是最大的软件吗?对了,哪个谁不是说过mac和windows是最大的恶意程序嘛!

这种方法步骤也比较简单,但是格局大多了。比如各种所谓的云的各种SAAS,由于要那redis举例,我记得青云的redis云缓存服务器,应该比我这种说的高一个层次。这时我突然想把这个境

界一分为二,因为我突然想加一种情况进去。

第一种我猜大家已经想到了:

1,在虚拟机或者物理机上部署redis服务,可用第三种方法。

2,PtoV或者VtoV的方法转换成模板。

3,下次要用到时候直接从模板部署虚拟机即可,目前哪一种虚拟化技术都支持这个。

第二种我这里讲的是分布式集群环境,这个不是每个软件都通用,正好这里举例的redis通用

1,部署redis集群(redis3.0支持,不过我没有试过redis集群,我试过codis集群)

2,下次有需求时,直接在集群上(这里以codis集群举例)扩展codis-group再添加codis-server实例即可

3,这个分布式集群环境支持横向扩展,在线伸缩,可以满足各种苛刻的话需求

话说到这里改结束了,本来还想说点什么可以是说不出来,那个天地境界确实不好理解啊。

时间: 2024-10-10 16:18:17

从软件部署看运维的四种境界的相关文章

写给自己看的Linux运维基础(四) - python环境

pip - Python包管理工具 https://pip.pypa.io/en/latest/installing.html wget https://bootstrap.pypa.io/get-pip.py python get-pip.py Redis (NoSQL) http://www.redis.io/download wget http://download.redis.io/releases/redis-2.8.13.tar.gz tar xzf redis-2.8.13.tar

Linux云自动化运维第四课

Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所在位置插入 I  ###光标所在行行首 a  ###光标所在字符的下一个位置 A  ###光标所在行行尾 o  ###光标所在行下一行 O  ###光标所在行上一行 s  ###删除光标所在字符插入 S  ###删除光标所在行插入 2.vim的退出模式 :q  ###当用vim打开文件但没有对字符作

(转)程序员四种境界

程序员四种境界 在成为程序员的道路上,要经历四个坎坷,让我们用四个境界来标明他们. 第一境界,就是前面所说的,掌握一门或者几门编程语言,会模仿例子来实现程序代码,并且让代码在计算机系统中运行起来.达到这个境界人,还不能算是真正意义上的程序员,而仅仅是掌握了一种或者几种工具的工匠,他们中的熟练者能够快速模仿现成的例子,以实现自己或者用户需要的软件模块. 非常遗憾,许多 “程序员”仅仅达到第一个境界,他们根据手中的文档和参考资料,通过“模仿”来完成工作,他们实现的程序只是无数个前人已经实现过的代码的

安装部署自动化运维之Ansible

初步了解Ansibleansible基于Python开发,,集合了众多运维工具的优点,实现了批量运行命令,部署程序,配置系统等功能.默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单.可同时支持多台主机并行管理,使得管理主机更加便捷. Ansible核心组件ansible可以看做是一种基于模块进行工作的框架结构,批量部署能力就是有ansible所运行的模块实现的.简而言之ansible是基于"模块"完成各种"任务&qu

CentOS 8部署自动化运维工具-- Ansible

Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的.ansibl

部署自动化运维工具SaltStack

salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System. 基本原理: SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信 minio

我的朗科运维第四课(2)

用户和组的管理 所采用的认证为Cisco开发的AAA认证体系: Authetication:认证,核实身份是否正确: Authorization:授权,对已经核实身份的用户进行资源分配: Accounting:审计,监管资源被使用的情况: Linux是一个多用户.多任务的系统: 能够实现资源使用和完成的任务的主体是:应用程序进程 进程是以其发起者的身份运行的:可以理解为:进程的所有者就是发起者:会将发起者信息标记在进程上: 当进程试图访问资源的时候,安全上下文会对比进程的所有者和资源的所有者的关

LINUX 安全运维 (四)

Linux  后门入侵检测工具: (1 )先简单介绍一种木马 rootkit 是木马后门工具,说白了就是木马病毒.它比普通木马更加危险,而且隐藏隐蔽.它主要是把你系统的文件,替换成它的文件.表面上还是你的文件,实际上已经不是了.所以非常危险. rootkit有2种类型,文件级别  和  内核级别.(呵呵,病毒也是分门别派的,就像武侠剧,丐帮也分为污衣派 和 净衣派) 污衣派(文件级别rootkit):  污衣派比较简单,就是利用程序漏洞或者系统漏洞进入系统后,修改系统的重要文件来达到自己的目的.

Docker环境下的前后端分离项目部署与运维(一)项目简介及环境要求

项目简介 本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能.高负载.高可用的部署方案.包括了MySQL集群.Redis集群.负载均衡.双机热备等等. 部署图 所用到的主流技术 Docker容器.前后端集群.MySQL集群.Redis集群.Haproxy负载均衡.Nginx负载均衡.Keepalived实现双机热备 前后端分离项目部署图 前后端分离项目开源框架介绍 本次教程所采用的前后端分离的项目开源框架是人人网的renren