成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

通過 Ansible 創建 Jenkins Server

創建 CI 流程的第一件事應該是安裝 CI 工具,本文以最常見的 Jenkins 為例,介紹如何使用 Ansible 自動安裝 Jenkins Server。說明:本文的演示環境為 Ubuntu 16.04。

Ansible roles(角色)

Ansible 中除了 playbook,還有更高層級的抽象,稱為 role(角色)。所謂的 role 其實就是把一些 playbook 組織成為一個更簡潔、清晰的可重用對象。比如把安裝 Jenkins Server 的 playbook 組織成為一個 role。
感謝開源社區,當我們需要安裝 Jenkins Server 的時候并不需要自己寫一個對應的 role,直接使用大神們寫好的就可以了。

Ansible Galaxy
Ansible Galaxy 是社區和分享 Ansible role 的地方。直接搜索 jenkins,由 geerlingguy 貢獻的 jenkins role 是目前最受歡迎的:

通過 Ansible 創建 Jenkins Server

ansible-galaxy 命令
通過 ansible-galaxy 命令可以把上面搜索到的 role 安裝到本地:

$ ansible-galaxy install geerlingguy.jenkins

由于 geerlingguy.jenkins role 依賴 geerlingguy.java role,所以在安裝 geerlingguy.jenkins role 的同時也安裝了 geerlingguy.java role。默認的安裝目錄在當前用戶家目錄下的 .ansible/roles
同時會安裝其依賴的 geerlingguy.java role(能夠自行處理依賴關系):

通過 Ansible 創建 Jenkins Server

了解 jenkins role 的基本配置

我們安裝的 geerlingguy.jenkins role 的主要配置文件為:~/.ansible/roles/geerlingguy.jenkins/defaults/main.yml。下面介紹一下其中的一些比較重要的配置項。
jenkins_package_state: present
安裝的 jenkins 版本,present 表示僅安裝系統默認包中的版本,如果需要最新版本的 jenkins,需要把 jenkins_package_state 設置為 latest。

jenkins_hostname: localhost
通過 http 協議訪問 Jenkins 時使用的域名或主機名稱,作為演示,設置為 localhost 就可以了。

jenkins_home: /var/lib/jenkins
Jenkins 的主目錄。

jenkins_http_port: 8080
Jenkins 服務器監聽的端口號。

jenkins_url_prefix: “”
如果不想通過域名或主機名稱直接訪問 Jenkins,可以設置 jenkins_url_prefix 變量。比如設置為 /jenkins,這樣我們就需要通過下面的 URL 來訪問 Jenkins server 了:
http://localhost:8080/jenkins

jenkins_jar_location: /opt/jenkins-cli.jar
Jenkins CLI 程序的位置,該程序主要用來以命令行的方式與 Jenkins server 交互。

jenkins_plugins: []
指定在安裝 Jenkins server 的同時安裝的插件,默認是一個插件都不裝的:

通過 Ansible 創建 Jenkins Server

如果需要安裝插件,使用逗號分隔插件名稱并寫入到中括號中就可以了,下面是一個小 demo:
[junit,greenballs,git]

jenkins_plugins_state: present
指定插件的版本,如果設置為 latest,就會保證所有的插件都是最新版本。

jenkins_plugin_timeout: 30
安裝插件時的連接超時時間。需要注意安裝插件時的超時問題,國內安裝插件非常耗時,最好把 jenkins_plugin_timeout 設置的大些,不然經常會碰到 timeout 錯誤:

通過 Ansible 創建 Jenkins Server

jenkins_plugins_install_dependencies: true
安裝插件時是否安裝其所依賴的插件。

jenkins_admin_username: admin
jenkins_admin_password: admin
安裝 Jenkins 時創建的管理員賬號和密碼。

jenkins_java_options: “-Djenkins.install.runSetupWizard=false”
可以通過 jenkins_java_options 來設置額外的 java 命令行參數。比如我們可以通過下面的配置來設置 Jenkings server 的時區為紐約:
jenkins_java_options: “-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York”

jenkins_version: “1.644”
jenkins_pkg_url: “http://www.example.com”
這兩個配置是可選的,通過 jenkins_version 變量我們可以指定安裝的 Jenkins 版本,這樣每次都會安裝相同的版本,當然必須是出現在 http://pkg.jenkins-ci.org/debian/ (Ubuntu)中的版本。
如果你不想使用官方的包,可以通過 jenkins_pkg_url 指定自己的包。默認這兩個選項是被注釋掉的,也就是說會安裝官方的包。

jenkins_connection_delay: 5
jenkins_connection_retries: 60
啟動后連接到 Jenkins 時需要等待的時間和次數,以驗證 Jenkins 是否正在運行。等待的總時間=延遲*重試,因此默認情況下,這個角色在超時前將等待 300 秒。

jenkins_init_changes:
  – option: “JENKINS_ARGS”
    value: “–prefix={{ jenkins_url_prefix }}”
  – option: “JENKINS_JAVA_OPTIONS”
    value: “{{ jenkins_java_options }}”
修改 Jenkings 的初始腳本,默認的更改設置了配置的 URL 前綴,并為 Jenkins 的啟動添加了配置的 Java 選項。如果要為 Jenkins 的初始化腳本設置其他選項,添加其他的 選項/值 就可以了。

下面的配置與平臺相關,所以 Ubuntu 相關的配置放在配置文件 ~/.ansible/roles/geerlingguy.jenkins/vars/Debian.yml 中:
# For Debian (role default):
__jenkins_repo_url: deb https://pkg.jenkins.io/debian binary/
__jenkins_repo_key_url: https://pkg.jenkins.io/debian/jenkins.io.key
默認安裝的是 Jenkins 的最新版本,如果要安裝穩定版本請設置為下面的配置:
# For Debian/Ubuntu LTS:
__jenkins_repo_url: deb http://pkg.jenkins-ci.org/debian-stable binary/
__jenkins_repo_key_url: http://pkg.jenkins-ci.org/debian-stable/jenkins-ci.org.key

先在目標機器上安裝 curl

由于在安裝 Jenkins 的時候需要用到 curl 工具,所以有必要先安裝該工具。具體的做法我們可以寫一個簡單 playbook 來實現,把下面的內容保存到文件 pb_curl.yml 文件中:

---  - hosts: jenkinsservers    become: true    become_user: root    tasks:      - name: install curl on Ubuntu        apt:          name: curl          state: 'latest'          update_cache: no

然后在 /etc/ansible/hosts 文件中添加一個組 jenkinsservers 來保存目標主機:

[jenkinsservers]  192.168.21.145

最后執行命令在目標機器上安裝 curl:

$ ansible-playbook -u nick pb_curl.yml

如果你還不熟悉 Ansible 及其 playbook,請參考筆者的《Ansible 簡介》一文。

安裝 Jenkins

下面我們創建一個非常簡單的 playbook 文件 pb_jenkins.yml,其中引用已經安裝好的 role 來完成 jenkins 的安裝:

---  - hosts: jenkinsservers    vars:      jenkins_hostname: localhost    roles:      - role: geerlingguy.java        become: yes      - role: geerlingguy.jenkins        become: yes

注意,playbook 中先配置了 geerlingguy.java 來安裝 Jenkins 依賴的 java。
執行下面的命令進行安裝:

$ ansible-playbook -u nick pb_jenkins.yml 

安裝成功后,到目標機器上檢查一下:

通過 Ansible 創建 Jenkins Server

Jenkins 服務器已經可以正常運行了,但此時只能通過 localhost 在本機訪問。如果需要在局域網內訪問,在配置文件中把 localhost 換成主機的 IP 就可以了。
注意,Ansible 的命令是可以重復執行的,如果因為網絡等原因造成的失敗問題,可以調整相關的超時參數然后重新執行一遍就行了。

總結

對于自動化來說,其本質是件一直在路上的工作。明確目標,然后找對工具進行持續的改進。筆者認為  Ansible 就是這么一款值得信賴的自動化利器,并且它能夠通過 playbook 和 role 等概念把我們的使用經驗積淀下來進行分享。

參考:
Integrating Ansible with Jenkins in a CI/CD process
ansible-role-jenkins
galaxy role jenkins(geerlingguy)

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
秋霞久久国产精品电影院| 久久久久国产精品嫩草影院| 色欲av成人蜜臀av不卡| 久久久久久亚洲精品不卡| 国产精品乱码久久久久软件| YSL千人千色YESE88网站| 亚洲人成网站在线在线观看| 无码AV无码免费一区二区| 日本JAPANESE 30成熟| 免费无码黄网站在线观看| 极品婬荡少妇XXXX欧美图片| 国产成人福利在线视频播放下载 | 国产精品视频一区二区三区四| АⅤ天堂中文在线网| 中国新疆XXXXXL19D| 亚洲欧美精品伊人久久| 小宝贝荡货啊用力水湿AⅤ视频| 日韩AⅤ无码AV一区二区三区| 欧美黑人一级爽快片婬片高清 | 免费A级毛片无码A∨蜜芽| 黑人大群体交免费视频| 国产精品亚洲综合色区韩国| 肥臀浪妇太爽了快点再快点| 凹凸国产熟女精品视频| ⅩXXX张柏芝XXXX| 中文无码一区二区不卡ΑV| 99这里只有精品| 国产99久久久国产无需播放器 | 亚洲综合熟女久久久40P| 亚洲精品一品区二品区三品区| 亚洲AV日韩精品久久久久久A| 无人区一码二码三码四码区别在哪| 丝袜人妻无码中文字幕综合网| 日日碰狠狠添天天爽超碰97| 日日摸日日碰夜夜爽亚洲| 性色A∨精品高清在线观看 | 九九九国产精品成人免费视频| 韩漫网站在线看免费无删减漫画 | 亚洲中文字幕无码日韩| 亚洲人成网线在线播放| XBOXONE播放DVD碟片| 国产乱人伦真实精品视频| 国产精品无码久久AV| 久久亚洲AV成人无码国产最大| 狂躁美女大BBBBBB视频1| 狼人青草久久网伊人| 日おめでとうございます| 亚洲不卡无码WWW一区二区三区| 亚洲国产精品无码久久一线| 亚洲人成人网站在线观看| OLDGRANNY日本老熟:妇| 成人精品一二三区| 国产成人精品18P| 久久嫩草影院免费看| 女生裙子里面到底穿了啥| 強暴強姦AV正片一区二| 日韩中文无码有码免费视频| 亚洲第一SE情网站| 亚洲中文字幕AV无码专区| 成年网站未满十八禁在线观看| 好儿子你插得太深了| 热久久99这里有精品综合久久| 亚洲AV永久无码成人私密按摩| 亚洲AV无码一区二区三区天堂| BGMBGMBGM老太太HD| 草莓视频APP在线下载| 国产成人精品日本亚洲第一区| 久久精品国产亚洲AV麻豆王友容| 两个黑人大战娇妻的小说 | 亚洲中文字幕久久久一区 | 色婷婷亚洲一区二区综合| 无码国产精品一区二区免费式芒果| 一本一本久久A久久综合精品蜜桃| 99久久伊人精品综合观看| 韩国全部三级伦在线播放| 日产乱码一二三区别免费演员表| 亚洲熟妇色XXXXX亚洲| 12末发育娇小性色XXXX| 草莓视频在线观看18| 久久久久久人妻一区精品| 我的妈妈和黑人群交小说| 亚洲欧美日韩综合在线一| 第一次处破女01免费观看| 国产在线精品二区| 久久久久亚洲AV无码永不| 天堂中文А√在线官网| 亚洲国产成人久久一区久久| 中文成人无码精品久久久不卡| 国产裸体XXXX视频在线播放| 日本三级强乳伦姧| 亚洲AV永久无码精品桃花岛知道| 插插插精品亚洲一区| 免费A级毛片无码A∨性按摩| 亚洲国产另类久久久精品黑人| 观看国产色欲色欲色欲WWW| 欧美一级 片内射黑人i| 小BBW小BBW小BBW小| 在线A毛片免费视频观看| 厨房人妻HD中文字幕69XX| 精品久久久久久中文字幕无码软件| 欧美黑人一级爽快片婬片高清 | 好男人的社区在线| 无码AⅤ最新AV无码专区| 草莓丝瓜榴莲绿巨人WWW| 欧美叉叉叉BBB网站| 无码动漫性爽XO视频在线观看不 | 亚洲欧美一区二区三区在线| 国产美足白丝榨精在线观看sm| 三上悠亚SSNI-542在线| А√天堂8资源最新版| 末成年女AV片一区二区| 夜先锋AV资源网站| 精品乱码一区二区三区四区| 小SB是不是想被C了| 国产成人亚洲综合无码AⅤ| 久久婷婷五月综合色和啪| 亚洲国产精品一区二区久久| 国产乱人伦AV在线麻豆A| 天美传媒MV在线看免费| 中文在线天堂А√在线| 久久精品国产亚洲AV高清漫画| 亚洲AV无码成人影片在线观看 | 免费看美女被靠到爽的视频| 伊人久久精品久久亚洲一区| 国产SUV精品一区二区五 | 国产成人福利在线视频播放下载| 三个人换着躁B一PL| 波多野结衣好大好紧好爽| 久久精品网站免费观看| 天堂АⅤ在线最新版在线| 丰满岳跪趴高撅肥臀| 免费无码久久成人网站| 中国女人内射6XXXXXWWW| 国产日韩AV无码免费一区二区三| 欧美黑人又粗又大久久久| 147VT最大但人文艺术| 麻豆国产MV视频| 小雪好湿用力啊进来轻点| 国产精品无码免费专区午夜| 无套内射CHINESEHD| 国内精品伊人久久久久影院对白| 日韩AV无码精品人妻系列| 成年大片免费视频播放| 日韩日韩日韩日韩日韩| 中文字幕人妻色偷偷久久| 激情 亚洲 成人小说 激情| 色五月丁香五月综合五月4438| 非洲妓女BBWBBWW| 玩肥熟老妇BBWXXX视频| 宝贝腿开大一点你真湿H| 美女裸体18禁免费网站| 亚洲精品无码激情AV| 国产乱XXXXX97国语对白| 无套内谢孕妇毛片免费看看| 黑人大荫道BBWBBB高潮潮喷| 亚洲日韩国产一区二区三区| 老牛天天晚上夜噜噜噜| 99久在线国内在线播放免费观看 | AV夜夜躁狠狠躁日日躁| 久久婷婷日日澡天天添| 中文乱码人妻系列一区二区| 青春草无码精品视频在线观看 | 狠狠人妻熟妇Av又粗又大| 丝瓜秋葵草莓香蕉榴莲绿| 国产精品自产Av一区二区三区| 亚洲VA中文字幕无码久久| 久久亚洲AV成人无码一区二区| 92午夜少妇极品福利无码电影| 久久久久精品电影一区二区三区| 在公交车上弄到高C了| 欧洲无线一线二线三W955 | 好男人好资源影视在线| 一本之道无码一区二区| 娇喘连连抽搐高潮小说| 岳故意装睡让我挺进去的电影| 欧美精品免费观看二区| 国产AV无码专区亚洲AV中文 | 日韩人妻无码系列专区| 国产乱码日产精品BD| 亚洲午夜性春猛交XXXX偷窥| 国内大量揄拍人妻在线视频| 无人区乱码一线忘忧草| 国产精品久久国产三级国| 亚洲精品中文字幕乱码| 欧美成人综合久久精品| 国产AV露脸一线国语对白| 亚洲老熟女 @ TUBEUM| 女生让男生随便诵自己的名字 | 日韩一区二区三区人妻系列| 国产亚洲日韩在线三区| 一二三四在线观看视频韩国| 日本丰满人妻熟妇BBBBB③B| 白嫩美女被内射59| 亚洲 欧美精品SUV| 黑人上司粗大拔不出来| 中文字幕AV一区二区三区| 上边一面亲下边一面膜的作用| 国产成年无码久久久久毛片| 亚洲在AV极品无码天堂手机版| 人妻少妇精品视频aaa|