成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Terraform在AWS上部署Jenkins

開發 前端
這篇文章是部署以AWS Amazon作為IaaS的Jenkins的簡單任務。為了全面了解,我們將安裝Jenkins及其插件,注冊用戶,設置基本的安全規則,最后插入一個作業作為示例,因此,讓我們進一步闡述一下這個想法。

持續集成,持續交付和持續部署,這些概念和術語可以協同工作以實現應用程序生命周期的自動化,在這方面,如果您要實施CI/ CD,Jenkins可能是建立服務器以自動化該過程的主要工具。

這篇文章是部署以AWS Amazon作為IaaS的Jenkins的簡單任務。為了全面了解,我們將安裝Jenkins及其插件,注冊用戶,設置基本的安全規則,最后插入一個作業作為示例,因此,讓我們進一步闡述一下這個想法。

先決條件

  • AWS Amazon中的EC2實例來測試此技術說明。
  • 安裝terraform作為“基礎結構即代碼”工具。

安裝Jenkins及其工作
首先,我們需要觀看本節,因為這是我們可以找到如何通過腳本bash安裝Jenkins的過程,該bash腳本是作為通用腳本制作的,可在不同的CentOS Linux上使用。此安裝分為5部分,首先我們將安裝并啟動Jenkins,然后我們將注冊一個默認用戶并安裝基本插件,最后,注冊我們最好的朋友HelloWorld job,這將是一個很好的例子一個好的開始。

  1. jenkins_user=$1 
  2. jenkins_password=$2 
  3. jenkins_address=http://localhost:8080 
  4.  
  5. set -x 
  6.  
  7. function installing() 
  8.     #Installing some necessary dependencies  
  9.     sudo yum -y update 
  10.     sudo yum -y install wget java-1.8.0 nano nc 
  11.      
  12.     #Installing jenkins, instructions located in http://pkg.jenkins-ci.org/redhat/ 
  13.     sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo 
  14.     sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key 
  15.     sudo yum install -y jenkins 
  16.      
  17.     sleep 1 
  18.     echo "[INFO]  Jenkins was installed" 

請注意,bash腳本中的plugins函數對于首次安裝登錄Jenkins時建議的所有插件是必需的,這是自定義此工具的一部分,并且是注冊默認用戶所必需的。循環以檢查Jenkins服務器是否正在運行,您可以在啟動和插件功能時觀看。

  1. function plugins() 
  2.     #Installing jenkins plugins  
  3.     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin trilead-api 
  4.     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin cloudbees-folder 
  5.      
  6.     ... many more plugins ... 
  7.      
  8.     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin pam-auth  
  9.     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin ldap 
  10.     java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  install-plugin email-ext  
  11.      
  12.     # Restart 
  13.     sudo systemctl restart jenkins & 
  14.     while (( 1 )); do 
  15.       echo "[INFO]   waiting for restart Jenkins on port [8080] ..." 
  16.        
  17.       java -jar jenkins-cli.jar -s "$jenkins_address" -auth $jenkins_user:$jenkins_password  list-jobs 
  18.       if (( $? == 0 )); then 
  19.           break 
  20.       fi 
  21.      
  22.       sleep 20 
  23.     done 
  24.      
  25.     echo "[INFO]   Jenkins was restarted" 

您還記得啟動Jenkins服務器的公告嗎?如果您不想再看到它,則應該實現插件功能。

下面是一個簡單的任務,介紹了如何通過Jenkins CLI在Jenkins中添加作業,這是帶有字符串參數的Pipeline作業。

  1. <?xml version='1.1' encoding='UTF-8'?> 
  2. <flow-definition plugin="workflow-job@2.40"
  3.   <description></description> 
  4.   <keepDependencies>false</keepDependencies> 
  5.   <properties> 
  6.     <hudson.model.ParametersDefinitionProperty> 
  7.       <parameterDefinitions> 
  8.         <hudson.model.StringParameterDefinition> 
  9.           <name>par_name</name
  10.           <description></description> 
  11.           <defaultValue>HelloWorld</defaultValue> 
  12.           <trim>false</trim> 
  13.         </hudson.model.StringParameterDefinition> 
  14.       </parameterDefinitions> 
  15.     </hudson.model.ParametersDefinitionProperty> 
  16.   </properties> 
  17.   <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.83"
  18.     <script>pipeline { 
  19.     agent { label 'master' } 
  20.     stages { 
  21.         stage('build') { 
  22.             steps { 
  23.                 echo "Hello World!" 
  24.             } 
  25.         } 
  26.     } 
  27. }</script> 
  28.     <sandbox>true</sandbox> 
  29.   </definition> 
  30.   <triggers/> 
  31.   <disabled>false</disabled> 
  32. </flow-definition> 

將Jenkins部署為服務器
該文件中提供了常規變量,請注意一些屬性,這些屬性需要由您配置的AWS CLI變量替換。請參閱《AWS CLI命令參考》中的更多信息。

  1. variable "region" { 
  2.   default  = "us-east-1" 
  3.   description = "AWS region" 
  4.  
  5. variable "access_key" { 
  6.   default  = "HEREYOURACCESSKEY" 
  7.   description = "AWS credentials file path" 
  8.  
  9. variable "secret_key" { 
  10.   default  = "HEREYOURSECRETKEY" 
  11.   description = "AWS credentials file path" 
  12.  
  13. variable "jenkins_user_name" { 
  14.   description = "jenkins" 
  15.   default = "jenkins" 
  16.  
  17. variable "jenkins_user_password" { 
  18.   description = "jenkins" 
  19.   default = "jenkins" 
  20.  
  21. variable "jenkins_name" { 
  22.   description = "Jenkins name" 
  23.   default = "jenkins" 
  24.  
  25. variable "jenkins_instance_type" { 
  26.   default = "t2.micro" 
  27.  
  28. variable "jenkins_key_name" { 
  29.   default = "key-pair" 
  30.   description = "SSH key located in tyour AWS account." 
  31.  
  32. variable "amis" { 
  33.   description = "ami to spawn." 
  34.   default = {  
  35.     us-east-1 = "ami-0c94855ba95c71c99" 
  36.   } 

有幾個屬性需要設置:

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實例。

  1. resource "aws_instance" "jenkins" { 
  2.   instance_type = "${var.jenkins_instance_type}" 
  3.   security_groups = ["${aws_security_group.security_group_jenkins.name}"
  4.   ami = "${lookup(var.amis, var.region)}" 
  5.   key_name = "${var.jenkins_key_name}" 
  6.  
  7.   # Add jenkins server startup 
  8.   provisioner "file" { 
  9.     connection { 
  10.       user = "ec2-user" 
  11.       host = "${aws_instance.jenkins.public_ip}" 
  12.       timeout = "1m" 
  13.       private_key = "${file("templates/${var.jenkins_key_name}.pem")}" 
  14.     } 
  15.     source = "templates/jenkins_startup.sh" 
  16.     destination = "/home/ec2-user/jenkins_startup.sh" 
  17.   } 
  18.    
  19.   # Add jenkins job 
  20.   provisioner "file" { 
  21.     connection { 
  22.       user = "ec2-user" 
  23.       host = "${aws_instance.jenkins.public_ip}" 
  24.       timeout = "1m" 
  25.       private_key = "${file("templates/${var.jenkins_key_name}.pem")}" 
  26.     } 
  27.     source = "templates/jobmaster.xml" 
  28.     destination = "/home/ec2-user/jobmaster.xml" 
  29.   } 
  30.  
  31.   provisioner "remote-exec" { 
  32.     connection { 
  33.       user = "ec2-user" 
  34.       host = "${aws_instance.jenkins.public_ip}" 
  35.       timeout = "1m" 
  36.       private_key = "${file("templates/${var.jenkins_key_name}.pem")}" 
  37.     } 
  38.     inline = [ 
  39.       "chmod +x /home/ec2-user/jenkins*.sh"
  40.       "/home/ec2-user/jenkins_startup.sh ${var.jenkins_user_name} ${var.jenkins_user_password}" 
  41.     ] 
  42.   } 

一旦配置了所有屬性,請執行命令行terraform init初始化工作文件夾,執行terraform計劃以監視所有部署計劃,一旦檢查完成,請執行命令行terraform申請部署基礎架構。

進入詹金斯
可以在AWS管理控制臺中找到,單擊“實例”部分,然后應如下創建一個新實例。

復制公共DNS,并在瀏覽器上鍵入此值,然后鍵入端口8080(如鏡像所示),記住所有可用端口在main.tf文件的安全組部分中。用戶和密碼被配置為variables.tf文件中的屬性,因此在這種情況下,我們的用戶和密碼為“ Jenkins”。

結論
簡單實用,如果您想瀏覽此代碼,請在此存儲庫中單擊。也許,您已經看過許多有關Jenkins的安裝,但是我在許多安裝中都使用了這種bash和安裝方式,它使這些基本活動變得很輕松:注冊用戶,注冊基本工作和安裝插件。希望這項貢獻對您有所幫助。

腳本庫地址:https://github.com/moballiachi/cicd-jenkins.git

關于我們
澤陽,DevOps領域實踐者。專注于企業級DevOps運維開發技術實踐分享,主要以新Linux運維技術、DevOps技術課程為主。豐富的一線實戰經驗,課程追求實用性獲得多數學員認可。課程內容均來源于企業應用,在這里既學習技術又能獲取熱門技能,歡迎您的到來!(微信ID: devopsvip)

 

責任編輯:姜華 來源: DevOps云學堂
相關推薦

2021-03-30 17:03:02

React開發部署Nginx

2023-02-07 16:36:34

機器學習Docker無服務器

2015-01-06 09:41:25

AWS數據庫部署數據庫監控

2012-05-24 09:15:45

ibmdw

2009-06-01 11:23:08

Glassfish部署Glassfish

2013-07-26 11:28:08

Git

2014-07-28 10:13:59

AWS部署APIEC2

2012-05-07 08:33:20

dotcloudDjango

2021-12-21 21:00:23

Ansible樹莓派語音助手

2024-07-16 09:41:01

2023-02-21 08:01:20

AWSTerraform管理

2023-09-11 09:35:20

Docker程序

2010-08-10 11:04:19

部署SCOMWindows Ser

2011-12-23 09:28:41

Redmine

2021-03-17 10:05:42

KubernetesRedis數據庫

2012-05-29 11:02:23

ibmdw

2011-10-24 14:22:05

2024-08-05 14:17:59

大型語言模型適配器LLM

2016-06-23 13:56:48

云計算應用后端

2018-12-19 08:00:24

Terraform開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本成人中文字幕在线观看 | 精品国产一区久久 | 欧美三级网站 | 女人av| wwwxxx国产| 在线一区 | 在线伊人网 | 天天碰日日操 | 狠狠干天天干 | 欧美日韩亚洲国产 | 亚洲xx在线 | 久久97精品| 国产精品国产精品国产专区不卡 | 国产91久久久久蜜臀青青天草二 | 天天天天天天天干 | 91久久夜色精品国产网站 | 日本高清aⅴ毛片免费 | 久久亚洲国产 | 福利精品在线观看 | 精品一区二区久久久久久久网站 | 日韩视频国产 | 免费观看黄色一级片 | 欧美一级久久 | 国产丝袜一区二区三区免费视频 | 亚洲精品视频在线播放 | 久久久久久一区 | 久久精品国产免费高清 | 操久久| 欧美视频一区二区三区 | 午夜精品久久久久久久久久久久久 | 成人h免费观看视频 | 国产精品久久99 | 日韩伦理一区二区三区 | caoporn地址 | 欧美日韩亚洲一区 | 在线观看中文字幕视频 | 一区二区高清不卡 | 国产精品毛片无码 | 日本精品一区二区三区在线观看视频 | 午夜精品一区 | 毛片免费观看 |