中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Terraform在AWS上部署Jenkins

發布時間:2021-10-26 09:21:49 來源:億速云 閱讀:217 作者:iii 欄目:web開發

這篇文章主要介紹“如何使用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”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉林省| 佳木斯市| 霞浦县| 田林县| 抚顺县| 泰来县| 肇源县| 宜兰市| 岚皋县| 平罗县| 孝昌县| 阿克| 凤山县| 南雄市| 海淀区| 社旗县| 太保市| 呼和浩特市| 应用必备| 灵宝市| 万盛区| 宽甸| 凤庆县| 宁波市| 乐平市| 河南省| 永兴县| 郸城县| 清流县| 商河县| 定兴县| 乌审旗| 肥乡县| 囊谦县| 阳朔县| 通许县| 北京市| 柞水县| 陈巴尔虎旗| 昌平区| 五河县|