云服务器自动化运维教程:一步步指南(云服务器自动重启)前言在当今快节奏的数字化世界中,保持云服务器的平稳运行至关重要。借助自动化运维,您可以简化繁琐的任务,提高效率并最大限度地减少停机时间。本教程将指导您一步步设置云服务器的自动重启功能。准备工作1. 云服务器确保您拥有一个运行中的云服务器。2. SSH客户端安装一个 SSH 客户端(如 PuTTY 或 Terminal),用于远程连接到您的服务器。3. 保存更改在进行任何更改之前,请务必备份您的服务器。第一步:创建执行脚本1. 使用 nano 编辑器创建脚本sudo nano /etc/init.d/auto-reboot2. 输入以下内容:!/bin/bash设置重启时间
REBOOT_TIME=”05:00″检查当前时间是否与重启时间一致
if [ “$(date +%H:%M)” == “$REBOOT_TIME” ]; then重启服务器reboot
fi3. 保存并退出脚本按下 `Ctrl` + `X`,然后按 `Y` 保存并退出。第二步:使脚本可执行sudo chmod +x /etc/init.d/auto-reboot第三步:添加脚本到系统启动项sudo update-rc.d auto-reboot defaults第四步:调整重启时间(可选)1. 使用 nano 编辑器打开脚本sudo nano /etc/init.d/auto-reboot2. 更改 `REBOOT_TIME` 变量将 `REBOOT_TIME` 更改为您希望服务器自动重启的时间(例如,”03:00″ 表示凌晨 3 点)。3. 保存并退出脚本第五步:测试脚本手动重启服务器以触发脚本:sudo reboot确认服务器在指定时间自动重启第六步:排除故障脚本未执行检查脚本是否可执行(`chmod +x /etc/init.d/auto-reboot`)。确认脚本已添加到系统启动项(`sudo update-rc.d auto-reboot defaults`)。脚本执行但未重启服务器检查脚本中的 `REBOOT_TIME` 变量是否正确设置。确认服务器在脚本指定的准确时间处于活动状态。其他故障排除提示查看服务器日志(`/var/log/syslog`)以获取更多信息。使用命令 `ps aux | grep auto-reboot` 检查脚本进程是否正在运行。重新启动执行脚本管理器:`sudo service sysv-rc-conf restart`。结论通过遵循本教程中的步骤,您已成功设置了云服务器的自动重启功能。这将简化维护,提高稳定性,并减少停机时间。随着自动化的不断进步,IT 运营团队将能够更加高效和高效地管理他们的基础设施。
k8s自动化运维十三-国产麒麟操作系统安装minikube
为了实现Kubernetes自动化运维,需要在国产麒麟操作系统中安装minikube,以下步骤将指导完成这一任务。
首先,需确认系统版本及内核版本,确保满足安装条件。
查看系统架构确认为华为鲲鹏服务器架构aarch64。
接着,需要修改hosts文件,以确保DNS解析正确。
同时,配置k8s镜像源,保证后续操作的顺利进行。
为了离线安装Docker,需先下载Docker安装包并进行安装,确保Docker服务在非root权限下运行。
编辑Docker的系统服务文件,设置为非root用户启动Docker服务。
重启Docker服务,然后通过root用户关闭Docker服务,使用非root用户启动服务,确保minikube与Docker服务协同工作。
安装minikube时,注意避免使用root权限,以确保minikube的正常运行。
了解minikube 1.22.0版本对应的镜像版本,可以通过查看源码得知版本号。
根据版本号,可以通过脚本下载对应的镜像文件,确保minikube运行所需的镜像正确。
修改配置文件/etc/docker/,删除与systemd不兼容的exec-opts配置,然后重启Docker服务确保配置生效。
最后,通过执行命令查看Docker镜像版本号,以及minikube的启动状态,确认整个安装过程的正确性和稳定性。
项目打包和自动化部署
在传统的开发模式中,开发的整个过程是按部就班就行。
但是这种模式存在很大的弊端:
DevOps是Development和Operations两个词的结合,将开发和运维结合起来的模式。
伴随着DevOps一起出现的两个词就是持续集成和持续交付(部署):
持续集成CI:
持续交付和持续部署:
云服务器我们可以有很多的选择:阿里云、腾讯云、华为云。
但是在我们的课程中,我选择目前使用更加广泛的阿里云来讲解。
我们需要注册阿里云账号:,注册即可,非常简单。
购买云服务器其实是购买一个实例。
Jenkins本身是依赖Java的,所以我们需要先安装Java环境。这里我安装了Java1.8的环境
因为Jenkins本身是没有在dnf的软件仓库包中的,所以我们需要连接Jenkins仓库:
编辑一下文件/etc/.d/
安装Jenkins
启动Jenkins的服务:
Jenkins默认使用8080端口提供服务,所以需要加入到安全组中:
我们后面会访问centos中的某些文件夹,默认Jenkins使用的用户是jenkins ,可能会没有访问权限,所以我们需要修改一下它的用户:
修改文件的路径: /etc/sysconfig/jenkins
之后需要重启一下Jenkins:
打开浏览器,输入:获取输入管理员密码:
可以安装推荐的插件:
新建任务:
配置项目和保留策略:
源码管理:
构建触发器:
这里的触发器规则是这样的:
构建环境:
注意:我们需要搭建Node的环境
第一步:配置Node的环境
第二步:安装Node的插件
构建执行的任务:
后续我们部署会使用nginx,所以需要先安装一下nginx:
启动nginx:
我们这里主要配置nginx的用户和默认访问目录:
配置用户:
通过Linux命令创建文件夹和文件:
配置访问目录:
「自动化运维」从0到1 CICD自动化部署落地分享
目录
一、CICD简介
二、CICD实践过程
三、含泪踩坑
四、 历史 文章指路
一、CICD简介
1、CICD定义
2、DevOps定义
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
DevOps的基础核心是CICD。
CICD的基础核心是自动化。
二、CICD实践过程
1、起因
在我之前的团队,因为要切换全新业务线,需要为新业务搭建一套全新的环境,所有东西从0开始。
原先只是用于部署测试环境,后面决定一起部署生产环境,这个过程中我还造成了一个严重生产环境问题,好在当时的生产环境还未正式使用,未造成严重影响。
在当时挺害怕也挺有压力的,但是后面项目完整落地,平稳运行,我还是挺有成就感的,接下来我将整个项目过程完整的分享出来。
2、技术栈选型
首先进行技术栈选型,我们选择的是Jenkins,Jenkins当属业内持续集成老大哥,有着非常丰富的插件,也可以选择gitlab集成的CICD,因为我们还有其它的测试脚本需要集成,所以Jenkins对于我们来说是最优的选择;
Ansible是批量运维工具,通过编写yaml脚本,可以方便实现批量管理多台机器,并且Ansible是比较轻量级应用,很容易上手;
shell脚本可以用于执行一系列命令。
其它的就结合团队项目情况进行搭建。
3、Jenkins应用部署实现流程
首先来梳理下整个项目的实现流程,主要分为Jenkins主节点和应用服务器,是一对多的关系。
Jenkins主节点的主要负责项目部署前的工作,主要包含拉取代码,前端打包,后端打包,快照版检测,将压缩包和部署脚本发送到目标机器(即应用服务器),远程调用目标机器上的部署脚本进行代码替换。
应用服务器部署脚本执行过程有:解压压缩包,停止服务,覆盖代码,拉取disconf,应用目录分组赋权,重启服务,检查服务是否有进程,查看启动日志,删除/tmp目录下旧压缩包。
Jenkins应用部署流程图
4、任务计划
4.1、搭建环境
指路【Jenkins系列】如何搭建Jenkins环境。
因为这个我没有实践成功的教程,所以在这里就不贴啦~
2、编写前置脚本
3、编写应用部署脚本
4、Jenkins配置
指路【Jenkins系列】如何构建Jenkins Job。
新增Job,主要用于拉取代码,执行Maven编译,执行app_,将压缩包通过ssh发送到目标机器,远程调用目标机器的。
三、含泪踩坑
踩坑1
问题描述:在错误的路径拉取配置,原因是未成功解压压缩包。
解决方案:校验压缩包是否解压成功解压成功,并且在cd到正确的路径后添加&&(&&表示上一条命令执行成功再执行下一条命令)才进行拉取配置。
踩坑2
问题描述:项目没有正常停止,导致无法重新启动。
解决方案:虽然执行kill -9,但是未找到根本原因,因此加了一个检测机制,如果检测没有正常停止服务,则退出程序。
踩坑3
问题描述:生产部署脚本拉取了开发环境的的jdbc配置,原因是生产部署脚本写错了开发环境disconf的域名,当时我同时在搞开发生产环境的脚本,开发和生产是两套不同的脚本,一时混乱写错了,吓得一批,好在当时生产环境还没投产使用。
解决方案:为了避免后续这种情况的发生,而且是必须避免的,我们通过环境名称来判断走开发还是生产域名,这样就能保证脚本一致性了。
在这个项目实际遇到的问题远不止上面这几个,在这个实践过程中,我对整个应用部署流程有了更深的理解,平时方方面面的学习终于集中化起来进行实践了。
我习惯将学到的知识和遇到的问题记录起来,在写这篇文章的过程回过头来看,五味杂陈,原来我都经历了这些哈哈哈……
踩过的坑终究使我更加强大,带你见证呱呱本呱成长为参天大呱~
搞测试,不迷路
呱呱大王本呱带你飞!