返回顶部
首页 > 资讯 > 前端开发 > node.js >如何使用Terraform在AWS上部署Jenkins
  • 461
分享到

如何使用Terraform在AWS上部署Jenkins

2024-04-02 19:04:59 461人浏览 安东尼
摘要

这篇文章主要介绍“如何使用TerrafORM在AWS上部署jenkins”,在日常操作中,相信很多人在如何使用Terraform在AWS上部署Jenkins问题上存在疑惑,小编查阅了各式资料,整理出简单好用

这篇文章主要介绍“如何使用TerrafORM在AWS上部署jenkins”,在日常操作中,相信很多人在如何使用Terraform在AWS上部署Jenkins问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Terraform在AWS上部署Jenkins”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

先决条件

  • AWS Amazon中的EC2实例来测试此技术说明。

  • 安装terraform作为“基础结构即代码”工具

安装Jenkins及其工作
首先,我们需要观看本节,因为这是我们可以找到如何通过脚本bash安装Jenkins的过程,该bash脚本是作为通用脚本制作的,可在不同的Centos linux上使用。此安装分为5部分,首先我们将安装并启动Jenkins,然后我们将注册一个默认用户并安装基本插件,最后,注册我们最好的朋友HelloWorld job,这将是一个很好的例子一个好的开始。

jenkins_user=$1 jenkins_passWord=$2 jenkins_address=Http://localhost:8080  set -x  function installing() {     #Installing some necessary dependencies      sudo yum -y update     sudo yum -y install wget java-1.8.0 nano nc          #Installing jenkins, instructions located in http://pkg.jenkins-ci.org/redhat/     sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo     sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key     sudo yum install -y jenkins          sleep 1     echo "[INFO]  Jenkins was installed" }

请注意,bash脚本中的plugins函数对于首次安装登录Jenkins时建议的所有插件是必需的,这是自定义此工具的一部分,并且是注册默认用户所必需的。循环以检查Jenkins服务器是否正在运行,您可以在启动和插件功能时观看。

function plugins() {     #Installing jenkins plugins      java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin trilead-api     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin cloudbees-folder          ... many more plugins ...          java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin pam-auth      java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin ldap     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin email-ext           # Restart     sudo systemctl restart jenkins &     while (( 1 )); do       echo "[INFO]   waiting for restart Jenkins on port [8080] ..."              java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  list-jobs       if (( $? == 0 )); then           break       fi            sleep 20     done          echo "[INFO]   Jenkins was restarted"

您还记得启动Jenkins服务器的公告吗?如果您不想再看到它,则应该实现插件功能。

如何使用Terraform在AWS上部署Jenkins

下面是一个简单的任务,介绍了如何通过Jenkins CLI在Jenkins中添加作业,这是带有字符串参数的Pipeline作业。

<?xml version='1.1' encoding='UTF-8'?> <flow-definition plugin="workflow-job@2.40">   <description></description>   <keepDependencies>false</keepDependencies>   <properties>     <hudson.model.ParametersDefinitionProperty>       <parameterDefinitions>         <hudson.model.StringParameterDefinition>           <name>par_name</name>           <description></description>           <defaultValue>HelloWorld</defaultValue>           <trim>false</trim>         </hudson.model.StringParameterDefinition>       </parameterDefinitions>     </hudson.model.ParametersDefinitionProperty>   </properties>   <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.83">     <script>pipeline {     agent { label 'master' }     stages {         stage('build') {             steps {                 echo "Hello World!"             }         }     } }</script>     <sandbox>true</sandbox>   </definition>   <triggers/>   <disabled>false</disabled> </flow-definition>

将Jenkins部署为服务器
该文件中提供了常规变量,请注意一些属性,这些属性需要由您配置的AWS CLI变量替换。请参阅《AWS CLI命令参考》中的更多信息。

variable "region" {   default  = "us-east-1"   description = "AWS region" }  variable "access_key" {   default  = "HEREYOURACCESSKEY"   description = "AWS credentials file path" }  variable "secret_key" {   default  = "HEREYOURSECRETKEY"   description = "AWS credentials file path" }  variable "jenkins_user_name" {   description = "jenkins"   default = "jenkins" }  variable "jenkins_user_password" {   description = "jenkins"   default = "jenkins" }  variable "jenkins_name" {   description = "Jenkins name"   default = "jenkins" }  variable "jenkins_instance_type" {   default = "t2.micro" }  variable "jenkins_key_name" {   default = "key-pair"   description = "ssh key located in tyour AWS account." }  variable "amis" {   description = "ami to spawn."   default = {      us-east-1 = "ami-0c94855ba95c71c99"   } }

有几个属性需要设置:

access_key和secret_key:用作访问密钥,用于验证命令请求。

jenkins_key_name:密钥对文件的名称,将有助于通过ssh连接到我们的实例。如果您需要创建密钥对,请通过我的安全凭证部分中的处理程序进入您的AWS账户。注意,在此示例中,我们使用了位于该项目的Template文件夹中的key-pair.pem,用您的凭据替换此文件及其在项目中的名称。

amis:此属性可以是一个列表,并具有可以在Amazon Machine Instances中轻松找到的AMI实例ID,如果您想更改此AMI实例,请注意是否已安装AMI已安装systemctl,因为Amazon Linux不支持systemclt或服务命令基于其基于CentOS / RHEL的版本,因此为了避免花费大量时间搜索已经配置了他的systemctl的AMI实例,请尝试使用在此项目中配置的AMI实例。

resource "aws_instance" "jenkins" {   instance_type = "${var.jenkins_instance_type}"   security_groups = ["${aws_security_group.security_group_jenkins.name}"]   ami = "${lookup(var.amis, var.region)}"   key_name = "${var.jenkins_key_name}"    # Add jenkins server startup   provisioner "file" {     connection {       user = "ec2-user"       host = "${aws_instance.jenkins.public_ip}"       timeout = "1m"       private_key = "${file("templates/${var.jenkins_key_name}.pem")}"     }     source = "templates/jenkins_startup.sh"     destination = "/home/ec2-user/jenkins_startup.sh"   }      # Add jenkins job   provisioner "file" {     connection {       user = "ec2-user"       host = "${aws_instance.jenkins.public_ip}"       timeout = "1m"       private_key = "${file("templates/${var.jenkins_key_name}.pem")}"     }     source = "templates/jobmaster.xml"     destination = "/home/ec2-user/jobmaster.xml"   }    provisioner "remote-exec" {     connection {       user = "ec2-user"       host = "${aws_instance.jenkins.public_ip}"       timeout = "1m"       private_key = "${file("templates/${var.jenkins_key_name}.pem")}"     }     inline = [       "chmod +x /home/ec2-user/jenkins*.sh",       "/home/ec2-user/jenkins_startup.sh ${var.jenkins_user_name} ${var.jenkins_user_password}"     ]   } }

一旦配置了所有属性,请执行命令行terraform init初始化工作文件夹,执行terraform计划以监视所有部署计划,一旦检查完成,请执行命令行terraform申请部署基础架构

进入詹金斯
可以在AWS管理控制台中找到,单击“实例”部分,然后应如下创建一个新实例。

如何使用Terraform在AWS上部署Jenkins

复制公共DNS,并在浏览器上键入此值,然后键入端口8080(如镜像所示),记住所有可用端口在main.tf文件的安全组部分中。用户和密码被配置为variables.tf文件中的属性,因此在这种情况下,我们的用户和密码为“ Jenkins”。

如何使用Terraform在AWS上部署Jenkins

到此,关于“如何使用Terraform在AWS上部署Jenkins”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何使用Terraform在AWS上部署Jenkins

本文链接: https://lsjlt.com/news/84437.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Terraform在AWS上部署Jenkins
    这篇文章主要介绍“如何使用Terraform在AWS上部署Jenkins”,在日常操作中,相信很多人在如何使用Terraform在AWS上部署Jenkins问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • AWS上部署应用程序
    AWS上部署应用程序 不论想用自主开发的、开源项目的,还是商业厂商的软件,都需要安装、更新和配置应用程序及其依赖的组件。这一过程称为部署。 文章目录 AWS上部署应用程序前言一、在服务器启动时...
    99+
    2023-09-03
    aws 服务器
  • Linux下如何部署Jenkins
    这篇文章主要介绍Linux下如何部署Jenkins,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软...
    99+
    2023-06-27
  • 如何使用Jenkins自动部署Git代码
    Jenkins是一个流行的开源自动化服务器工具,可以用于持续集成和持续部署应用程序。通过Jenkins,可以轻松地自动化测试,构建和部署代码。在这篇文章中,我们将学习如何使用Jenkins自动部署Git代码。准备工作:安装Jenkins在本...
    99+
    2023-10-22
  • 怎么用KOps在AWS上部署和管理Kubernetes
    本篇内容主要讲解“怎么用KOps在AWS上部署和管理Kubernetes”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用KOps在AWS上部署和管理Kubernetes”吧!Kubernet...
    99+
    2023-06-19
  • docker如何部署安装jenkins
    这篇文章主要介绍docker如何部署安装jenkins,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,我们需要一台安装了docker的服务器。(这个我已经在我的小主机上安装了)第一步,把镜像给拉下来docker&...
    99+
    2023-06-22
  • 如何使用Jenkins Dashboard插件可视化部署
    本篇内容介绍了“如何使用Jenkins Dashboard插件可视化部署”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用Jenkins可视...
    99+
    2023-06-15
  • 如何使用tomcat部署Jenkins的升级方法
    这篇文章主要为大家展示了“如何使用tomcat部署Jenkins的升级方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用tomcat部署Jenkins的升级方法”这篇文章吧。使用tomc...
    99+
    2023-06-04
  • 如何使用 Jenkins 自动化 PHP 云端部署?
    通过 jenkins 自动化 php 云端部署,您可以:安装 php 插件并创建新的管道作业。定义构建和部署阶段,包括安装依赖项、运行测试和条件性部署代码。将构建和部署过程自动化,提高代...
    99+
    2024-05-06
    php jenkins laravel git composer
  • CentOS7 上利用 jenkins 实现自动部署
    前端项目打包部署,以前都是手工运行打包命令,打包结束后压缩,然后上传到服务器上解压部署。这种重复性的工作,确实有点让人烦,而且效率也不高。 本文基于 vue 的前端项目、 github 的代码仓库,简述在 CentOS7...
    99+
    2022-06-04
    自动化部署jenkins jenkins部署
  • Linux下如何使用jenkins进行自动化部署
    这篇文章主要介绍Linux下如何使用jenkins进行自动化部署,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Jenkins是用Java语言编写的主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽...
    99+
    2023-06-28
  • k8s如何部署分布式jenkins
    k8s如何部署分布式jenkins,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernet...
    99+
    2023-06-04
  • MySQL如何部署在Linux上
    这篇文章给大家分享的是有关MySQL如何部署在Linux上的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 配置SQL 1.用yum从windows下载...
    99+
    2024-04-02
  • react如何在linux上部署
    这篇文章主要介绍“react如何在linux上部署”,在日常操作中,相信很多人在react如何在linux上部署问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react如何在linux上部署”的疑惑有所帮助!...
    99+
    2023-07-04
  • Jenkins一键打包如何部署SpringBoot应用
    小编给大家分享一下Jenkins一键打包如何部署SpringBoot应用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Jenkins简介Jenkins是开源CI&...
    99+
    2023-06-22
  • Jenkins如何自动部署SpringBoot项目
    这篇文章给大家分享的是有关Jenkins如何自动部署SpringBoot项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、Jenkins安装下载jenkins安装包,maven安装包;打开xftp将安装包上传...
    99+
    2023-06-25
  • 如何使用Rancher在Kubernetes上部署EMQ X集群
    这篇文章主要讲解了“如何使用Rancher在Kubernetes上部署EMQ X集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Rancher在Kubernetes上部署EMQ X...
    99+
    2023-06-03
  • Linux上如何使用Dcoker部署GitLab
    本篇内容主要讲解“Linux上如何使用Dcoker部署GitLab”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux上如何使用Dcoker部署GitLab”吧!概述GitLab 是一款基于...
    99+
    2023-07-05
  • 如何在Ubuntu上部署网站
    在Ubuntu上部署网站的操作方法:打开终端命令行,切换到root权限。sudo su -输入以下命令安装apache2服务。apt-get install apache2把网站源码通过FTP上传到“/var/www”。再输入以下命令修改配...
    99+
    2024-04-02
  • 在AWS上如何使用EC2来搭建wordpress
    这篇文章主要介绍在AWS上如何使用EC2来搭建wordpress,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!0. 首先,你得有个AWS账号1. 生成密钥对(1) EC2 -> 网络与安全 -> 密钥对 ...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作