日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用Terraform在AWS上部署Jenkins

持續(xù)集成,持續(xù)交付和持續(xù)部署,這些概念和術(shù)語(yǔ)可以協(xié)同工作以實(shí)現(xiàn)應(yīng)用程序生命周期的自動(dòng)化,在這方面,如果您要實(shí)施CI/ CD,Jenkins可能是建立服務(wù)器以自動(dòng)化該過(guò)程的主要工具。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)新干免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

這篇文章是部署以AWS Amazon作為IaaS的Jenkins的簡(jiǎn)單任務(wù)。為了全面了解,我們將安裝Jenkins及其插件,注冊(cè)用戶,設(shè)置基本的安全規(guī)則,最后插入一個(gè)作業(yè)作為示例,因此,讓我們進(jìn)一步闡述一下這個(gè)想法。

先決條件

  • AWS Amazon中的EC2實(shí)例來(lái)測(cè)試此技術(shù)說(shuō)明。
  • 安裝terraform作為“基礎(chǔ)結(jié)構(gòu)即代碼”工具。

安裝Jenkins及其工作
首先,我們需要觀看本節(jié),因?yàn)檫@是我們可以找到如何通過(guò)腳本bash安裝Jenkins的過(guò)程,該bash腳本是作為通用腳本制作的,可在不同的CentOS Linux上使用。此安裝分為5部分,首先我們將安裝并啟動(dòng)Jenkins,然后我們將注冊(cè)一個(gè)默認(rèn)用戶并安裝基本插件,最后,注冊(cè)我們最好的朋友HelloWorld job,這將是一個(gè)很好的例子一個(gè)好的開(kāi)始。

 
 
 
 
  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" 

請(qǐng)注意,bash腳本中的plugins函數(shù)對(duì)于首次安裝登錄Jenkins時(shí)建議的所有插件是必需的,這是自定義此工具的一部分,并且是注冊(cè)默認(rèn)用戶所必需的。循環(huán)以檢查Jenkins服務(wù)器是否正在運(yùn)行,您可以在啟動(dòng)和插件功能時(shí)觀看。

 
 
 
 
  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" 

您還記得啟動(dòng)Jenkins服務(wù)器的公告嗎?如果您不想再看到它,則應(yīng)該實(shí)現(xiàn)插件功能。

下面是一個(gè)簡(jiǎn)單的任務(wù),介紹了如何通過(guò)Jenkins CLI在Jenkins中添加作業(yè),這是帶有字符串參數(shù)的Pipeline作業(yè)。

 
 
 
 
  1.  
  2.  
  3.    
  4.   false 
  5.    
  6.      
  7.        
  8.          
  9.           par_name 
  10.            
  11.           HelloWorld 
  12.           false 
  13.          
  14.        
  15.      
  16.    
  17.    
  18.      
  19.     true 
  20.    
  21.    
  22.   false 
  23.  

將Jenkins部署為服務(wù)器
該文件中提供了常規(guī)變量,請(qǐng)注意一些屬性,這些屬性需要由您配置的AWS CLI變量替換。請(qǐng)參閱《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.   } 

有幾個(gè)屬性需要設(shè)置:

access_key和secret_key:用作訪問(wèn)密鑰,用于驗(yàn)證命令請(qǐng)求。

jenkins_key_name:密鑰對(duì)文件的名稱,將有助于通過(guò)ssh連接到我們的實(shí)例。如果您需要?jiǎng)?chuàng)建密鑰對(duì),請(qǐng)通過(guò)我的安全憑證部分中的處理程序進(jìn)入您的AWS賬戶。注意,在此示例中,我們使用了位于該項(xiàng)目的Template文件夾中的key-pair.pem,用您的憑據(jù)替換此文件及其在項(xiàng)目中的名稱。

amis:此屬性可以是一個(gè)列表,并具有可以在Amazon Machine Instances中輕松找到的AMI實(shí)例ID,如果您想更改此AMI實(shí)例,請(qǐng)注意是否已安裝AMI已安裝systemctl,因?yàn)锳mazon Linux不支持systemclt或服務(wù)命令基于其基于CentOS / RHEL的版本,因此為了避免花費(fèi)大量時(shí)間搜索已經(jīng)配置了他的systemctl的AMI實(shí)例,請(qǐng)嘗試使用在此項(xiàng)目中配置的AMI實(shí)例。

 
 
 
 
  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.   } 

一旦配置了所有屬性,請(qǐng)執(zhí)行命令行terraform init初始化工作文件夾,執(zhí)行terraform計(jì)劃以監(jiān)視所有部署計(jì)劃,一旦檢查完成,請(qǐng)執(zhí)行命令行terraform申請(qǐng)部署基礎(chǔ)架構(gòu)。

進(jìn)入詹金斯
可以在AWS管理控制臺(tái)中找到,單擊“實(shí)例”部分,然后應(yīng)如下創(chuàng)建一個(gè)新實(shí)例。

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

結(jié)論
簡(jiǎn)單實(shí)用,如果您想瀏覽此代碼,請(qǐng)?jiān)诖舜鎯?chǔ)庫(kù)中單擊。也許,您已經(jīng)看過(guò)許多有關(guān)Jenkins的安裝,但是我在許多安裝中都使用了這種bash和安裝方式,它使這些基本活動(dòng)變得很輕松:注冊(cè)用戶,注冊(cè)基本工作和安裝插件。希望這項(xiàng)貢獻(xiàn)對(duì)您有所幫助。

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

關(guān)于我們
澤陽(yáng),DevOps領(lǐng)域?qū)嵺`者。專注于企業(yè)級(jí)DevOps運(yùn)維開(kāi)發(fā)技術(shù)實(shí)踐分享,主要以新Linux運(yùn)維技術(shù)、DevOps技術(shù)課程為主。豐富的一線實(shí)戰(zhàn)經(jīng)驗(yàn),課程追求實(shí)用性獲得多數(shù)學(xué)員認(rèn)可。課程內(nèi)容均來(lái)源于企業(yè)應(yīng)用,在這里既學(xué)習(xí)技術(shù)又能獲取熱門(mén)技能,歡迎您的到來(lái)!(微信ID: devopsvip)


名稱欄目:使用Terraform在AWS上部署Jenkins
分享鏈接:http://www.dlmjj.cn/article/cciddes.html