久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      通過 Ansible 創(chuàng)建 Jenkins Server

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

      Ansible roles(角色)

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

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

      通過 Ansible 創(chuàng)建 Jenkins Server

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

      $ ansible-galaxy install geerlingguy.jenkins

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

      通過 Ansible 創(chuàng)建 Jenkins Server

      了解 jenkins role 的基本配置

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

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

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

      jenkins_http_port: 8080
      Jenkins 服務(wù)器監(jiān)聽的端口號。

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

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

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

      通過 Ansible 創(chuàng)建 Jenkins Server

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

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

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

      通過 Ansible 創(chuàng)建 Jenkins Server

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

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

      jenkins_java_options: “-Djenkins.install.runSetupWizard=false”
      可以通過 jenkins_java_options 來設(shè)置額外的 java 命令行參數(shù)。比如我們可以通過下面的配置來設(shè)置 Jenkings server 的時區(qū)為紐約:
      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 版本,這樣每次都會安裝相同的版本,當(dāng)然必須是出現(xiàn)在 http://pkg.jenkins-ci.org/debian/ (Ubuntu)中的版本。
      如果你不想使用官方的包,可以通過 jenkins_pkg_url 指定自己的包。默認(rèn)這兩個選項(xiàng)是被注釋掉的,也就是說會安裝官方的包。

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

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

      下面的配置與平臺相關(guān),所以 Ubuntu 相關(guān)的配置放在配置文件 ~/.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
      默認(rèn)安裝的是 Jenkins 的最新版本,如果要安裝穩(wěn)定版本請?jiān)O(shè)置為下面的配置:
      # 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

      先在目標(biāo)機(jī)器上安裝 curl

      由于在安裝 Jenkins 的時候需要用到 curl 工具,所以有必要先安裝該工具。具體的做法我們可以寫一個簡單 playbook 來實(shí)現(xiàn),把下面的內(nèi)容保存到文件 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 來保存目標(biāo)主機(jī):

      [jenkinsservers]  192.168.21.145

      最后執(zhí)行命令在目標(biāo)機(jī)器上安裝 curl:

      $ ansible-playbook -u nick pb_curl.yml

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

      安裝 Jenkins

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

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

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

      $ ansible-playbook -u nick pb_jenkins.yml 

      安裝成功后,到目標(biāo)機(jī)器上檢查一下:

      通過 Ansible 創(chuàng)建 Jenkins Server

      Jenkins 服務(wù)器已經(jīng)可以正常運(yùn)行了,但此時只能通過 localhost 在本機(jī)訪問。如果需要在局域網(wǎng)內(nèi)訪問,在配置文件中把 localhost 換成主機(jī)的 IP 就可以了。
      注意,Ansible 的命令是可以重復(fù)執(zhí)行的,如果因?yàn)榫W(wǎng)絡(luò)等原因造成的失敗問題,可以調(diào)整相關(guān)的超時參數(shù)然后重新執(zhí)行一遍就行了。

      總結(jié)

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

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

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號