让我们建立一个 DevOps 项目:议程:DevOps 中的阶段:现在我们必须测试我们的应用程序:使用 ansible 进行配置管理:使用 Nagios 进行持续监控:感谢您阅读🤖🤖🤖

2025-06-07

让我们建立一个 DevOps 项目:

议程:

DevOps 中的阶段:

现在我们必须测试我们的应用程序:

使用ansible进行配置管理:

使用 Nagios 进行持续监控:

感谢您的阅读🤖🤖🤖

议程:

这是一个我们必须让应用程序经历 DevOps 生命周期的项目。

  1. 将源代码集成到版本控制环境中,以便共同开发。
  2. 应用程序必须经过ci/cd 管道
  3. 启用连续监控以实现容错。

DevOps 中的阶段:

  • 规划
  • 编码
  • 测试
  • 建筑
  • 发布
  • 部署
  • 操作
  • 监视器

规划:

更好地规划应用程序可以促进应用程序的更好发展,我们必须设计系统,其中涉及高级系统设计,如流程图、功能、目标用户、安全性、数据库关系。
规划

编码:

然后我们必须根据特点进行编码,其中涉及低级设计。
替代文本

测试:

如果我们构建的不是高规模应用程序,那么简单的单元测试就足够了。由于我们使用的是 DevOps,因此我们使用 Selenium 来自动化应用程序测试。我们使用 Selenium Web 驱动程序和 TestNG 来编写报告,并使用 Maven 来管理依赖项。
测试

建筑 :

  • 在构建阶段,我们将实现打包、错误测试,基本上将我们的应用程序与 Jenkins 集成,Jenkins 是一个 ci/cd 管道工具,它可以通过使用 webhook 配置来触发我们的代码,然后使用 selenium 自动化测试。

  • 因此主要有两种类型的服务器,一种用于测试,另一种用于生产。

  • 因此我们的应用程序应该首先进入测试服务器,然后再进入生产服务器。

替代文本

发布 :

在发布状态下,我们正在向预期用途发布应用程序的MVP 。
替代文本

配置管理:

这是基础设施即服务的一个阶段,我们必须为基础设施编写代码,并使其自动化,因为我们使用的是 DevOps,这可以通过配置管理工具(如 ansible、puppet、Ceph、SaltStack)来实现。假设我们的应用程序需要更多资源,因此我们必须分配新服务器,手动操作是可以的。但如果从大规模的角度考虑,这将是一项重复性任务,因此通过使用配置管理工具,我们可以确保在需要时将自动化服务器添加到我们的基础设施中。
配置管理

监视器 :

  • 监控我们的应用程序实际上和监控我们的基础设施一样重要。监控基于不同的指标,
    例如资源利用率(主要是 CPU 和内存)。

  • 当它发现潜在的故障症状时,就会触发警报,并记录应用程序哪个部分崩溃的情况。

监控

步骤:

  • 我们使用两台机器,一台是工作机器,另一台是从属机器。

  • 在AWS中创建两个 ec2 实例并使用 SSH 连接。
    替代文本

  • 在主节点上安装 Git 和 Jenkins(Java 作为先决条件)。

  • 按照常规步骤启动 Jenkins Web 仪表板。

詹金斯

  • 配置设置,我们必须创建一个新节点,然后通过下载两个文件来配置我们的节点机器,如果我们正在下载它们,我们必须使用 SCP 命令将它们复制到主节点。

$scp -i /downloads/.pem (name of the files) ubuntu@ip:/home/jenkins

  • 每当我们将代码推送到 GitHub 时,都配置 webhook 作为触发点。

  • 来到节点机我们需要安装 Java 和 git 。

  • 克隆 git repos 并修改一些变更。

  • 将其添加到暂存区(git 可以跟踪所有文件的地方)。

$git add .

$sudo git commit -m "Initial commit"

然后复制 Jenkins 的 IP 地址,转到存储库的设置,添加一个 webhook。
网络钩子

  • 被识别为有效载荷 URL

http://testingserverip:8080/github-webhook/

在 Jenkins 中实现一个 Job
创建一个新项目 test-job

  • 创建docker文件

码头工人

容器由操作系统和所需软件组成。
在我们的例子中,Ubuntu是容器中的操作系统,Apache 配置为Web 服务器

FROM hshar/webapp
ADD . /var/www/html
Enter fullscreen mode Exit fullscreen mode

在 Jenkins 构建环境中

sudo docker rm -f $(sudo docker ps -a -q)
sudo docker build /home/ubuntu/website/. -t test
sudo docker run -it -p 82:80 -d test
Enter fullscreen mode Exit fullscreen mode

现在我们必须测试我们的应用程序:

硒

  • 根据您的操作系统安装selenium webdriver 、单例服务器和 chromedriver。

在测试服务器上安装

$sudo apt install chromium-browser

转到此链接!

$wget https://chromedriver.storage.googleapis.com/87.0.4280.20/chromedriver_linux64.zip

$unzip chromedriver_linux64.zip

让我们编写一个简单的
/home/ubuntu/chromedriver 作为路径,并在无头模式
下执行它,因为我们的 ubuntu 服务器没有仪表板。

public class Test {

   public static void main(String []args) {

       System.setProperty("webdriver.chrome.driver", "C:\\Selinium\\chromedriver.exe");

       ChromeOptions options = new ChromeOptions();

       options.addArguments("--headless");
       WebDriver driver = new ChromeDriver(options);

       driver.get("http://(ip address)/");

       driver.findElement(By.id("id_name"));
   }
}
Enter fullscreen mode Exit fullscreen mode

java -jar hello.jar

然后scp传输到节点机器上

启动生产服务器实例

$sudo apt install open-jdk

$sudo apt install docker

转到 jenkins
添加一个名为 prod 服务器的新节点,位置是 /home/ubuntu/jenkins
运行 jnlp 文件

接下来创建一个新的工作作为不带 webhook 的生产分支

echo hello
sudo docker rm -f $(sudo docker -ps -q)
sudo docker build /home/ubuntu/jenkins/workspace/test-job/. -t prod
sudo docker run -it -p 80:80 -d prod 
Enter fullscreen mode Exit fullscreen mode
cd jenkins 
cd workspace 
cd test-job
Enter fullscreen mode Exit fullscreen mode
  • 创建一个名为test-job的新作业
  • 相同的 GitHub 网址
  • 标签表达式测试服务器
sudo cp ./hello.jar /home/ubuntu
sudo java -jar /home/ubuntu/hello.jar
Enter fullscreen mode Exit fullscreen mode
  • 测试 github-webhook
  • 构建后操作构建网站
  • 节省

  • 建立网站

  • 删除构建触发器

  • 添加测试网站构建后

  • 测试网站

  • 构建其他项目--测试作业

  • 添加新的管道视图
    定义初始作业其他将由构建后操作
    test-github-webhook处理

  • 测试服务器内部

sudo mv ./hello.jar /home/ubuntu/website
cd website
git add . 
git commit -m "test jar added"
sudo git push -u origin master 
Enter fullscreen mode Exit fullscreen mode
  • 让我们进入主服务器进行配置管理
    cd jenkins/workspace/test-job

  • 在浏览器中粘贴生产服务器的IP地址。

  • 在测试服务器上修改

cd website
change something
commit -m "Final commit"
sudo push -u origin master 
Enter fullscreen mode Exit fullscreen mode

新的作业名为 Develop-branch,
并将其限制在测试服务器上

sudo docker rm -f $(sudo docker ps -t -q)
sudo docker build /home/ubuntu/. -t test1
sudo docker run -it -p 85:80 -d test1
Enter fullscreen mode Exit fullscreen mode

使用ansible进行配置管理:

  • 在这个阶段,我们必须安装一个配置管理,在我们的例子中是 ansible。它有助于实现基础设施即代码,基本上是为我们的基础设施编写代码。

使用 Nagios 进行持续监控:

  • 我们循环的最后一步也是最重要的阶段。

感谢您的阅读🤖🤖🤖

文章来源:https://dev.to/rahulku48837211/let-s-build-a-devops-project-4b65
PREV
让你的 JavaScript 技能更上一层楼的概念
NEXT
使用 Flask 和 SQLAlchemy 构建 REST API