日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于Jenkins+OOS+OSS的自動化部署

通過Jenkins、OOS、OSS快速實現自動化部署。

本文以WordPress博客系統為例,來構建基于Jenkins + OOS + OSS的自動化部署最佳實踐,示例涉及如下產品。

  • wordpress github地址

  • OOS 系統運維管理,阿里云的自動化運維服務,用于管理軟件版本和分批發布。

  • OSS 對象存儲, 用于存儲構建的軟件包。

  • Jenkins 自動化構建,并觸發更新OSS和OOS的軟件包。

  • ROS 資源編排服務,阿里云提供的云資源的自動化部署服務,可以幫您一鍵部署系統所依賴的云資源(ECS,RDS,SLB等)。

環境準備

WordPress云上服務器

如下步驟為通過ROS,創建了一套包含ECS和RDS的WordPress環境。

  1. 登錄ROS(資源編排)控制臺

  2. 單擊模板->模板示例->基于ECS和RDS創建WordPress環境->創建資源棧image

  3. 輸入密碼和實例類型等相關參數,然后單擊創建,等待片刻后,若環境創建成功,資源棧的輸出結果樣式如下。

    1

  4. 其中輸出的WordPressUrl值是單機版WordPress地址,通過瀏覽器訪問可以看到網站已經部署好。

2

安裝并配置阿里云CLI

本文以Mac-os為例。

  1. 首先為阿里云CLI創建一個RAM用戶來獲取AK,詳細操作請參考創建RAM用戶。

  2. 安裝阿里云CLI。

    brew install aliyun-cli

  3. 配置CLI。

    aliyun configure

  4. 驗證CLI可用,若可用,可在終端看到輸出當前支持的多個地域。

aliyun ecs DescribeRegions

安裝并配置Jenkins

本文示例為Mac-OS,其他系統可參考Jenkins安裝

  1. 安裝最新版本

    brew install jenkins

  2. 安裝 LTS 版本

    brew install jenkins-lts

  3. 啟動Jinkens

    brew services start jenkins-lts

  4. 在本機瀏覽器打開localhost:8080。

  5. 根據提供的目錄復制并填入密碼,單擊繼續。

    3

  6. 安裝插件,選擇默認插件。

    4

  7. 設置用戶名和密碼后登錄。

Jenkins更新應用包

  1. 單擊Newitems。

  2. 選擇Freestyle project 并輸入項目名

  3. 單擊Source Code Managerment,選擇Git地址并配置。

    https://github.com/WordPress/WordPress.git

  4. Build內選擇Add build step,添加Execute Shell步驟,配置Command貼入如下腳本,腳本功能(將wordpress master的數據打包并拷貝到oss://wordpress-test-oos路徑下,然后在OOS創建名為wordpress的軟件包。)

    version=`date +%s`
    # 打包命令
    tar -cvf wordpress_$version.tar `find .|grep -v wp-config-sample.php|grep -v targets|grep -v .git|grep -v ^\.$`
    # 拷貝到OSS上
    /usr/local/bin/aliyun oss cp wordpress_$version.tar oss://wordpress-test-oos/wordpress_$version.tar
    templateName=wordpress
    # templateContent指定Location地址,并配置安裝時候執行的腳本
    # {
    #   "FormatVersion": "OOS-2020-01-01-Package",
    #   "Description": "",
    #   "Packages": [{
    #       "Name": "wordpress_$version.tar",
    #       "Location": "oss://wordpress-test-oos/wordpress_$version.tar",
    #       "InstallScript": "test -e wordpress || mkdir wordpress && cd wordpress && mv ../wordpress_$version.tar . && tar xvf wordpress_$version.tar > /dev/null && rm wordpress_$version.tar && cp -rf * /var/www/html/",
    #       "UninstallScript": "echo uninstall",
    #       "Targets": [{
    #           "PlatForm": "centos",
    #           "Architect": "x86_64"
    #       }]
    #   }]
    # }
    templateContent="{\"FormatVersion\":\"OOS-2020-01-01-Package\",\"Description\":\"\",\"Packages\":[{\"Name\":\"wordpress_$version.tar\",\"Location\":\"oss://wordpress-test-oos/wordpress_$version.tar\",\"InstallScript\":\"test -e wordpress || mkdir wordpress && cd wordpress && mv ../wordpress_$version.tar . && tar xvf wordpress_$version.tar > /dev/null && rm wordpress_$version.tar && cp -rf * /var/www/html/\",\"UninstallScript\":\"echo uninstall\",\"Targets\":[{\"PlatForm\":\"centos\",\"Architect\":\"x86_64\"}]}]}"
    # 更新OOS上的軟件包
    /usr/local/bin/aliyun oos CreateTemplate --TemplateName=$templateName --Content "$templateContent" || /usr/local/bin/aliyun oos UpdateTemplate --TemplateName=$templateName --Content "$templateContent"
    # 清理打包臨時文件
    rm wordpress_$version.tar

  5. 單擊Save。

  6. 配置好后單擊Build Now觸發部署流程,然后單擊Build History可查看部署情況。

    5

  7. 在Console Output里我們可以看到本次部署的日志,整個過程包括從Git拉取代碼,執行tar打包,將包拷貝到OSS上,以及在OOS上創建(更新)一個名為wordpress的軟件包,軟件包在OOS控制臺我的軟件(注意切換地域)可查看到。

    6

  8. 單擊詳情可查看軟件的詳情,包名、存儲位置、安裝腳本、卸載腳本,以及歷史版本。

7

OOS部署軟件

  1. 登錄OOS控制臺,單擊常用運維任務->批量管理軟件>創建>WordPress一鍵安裝,單擊安裝軟件,選擇要安裝在的目標實例(本示例選擇上文ROS創建得到的實例id)。

    image

  2. 我們發現選擇實例按鈕是灰色的,這個時候需要給實例配置一個角色,OOS會使用這個角色來獲取軟件包信息以及下載OSS的權限,單擊授權。

    9

    13

  3. 這時候我們跳到了添加角色的界面。

    • 若有已準備好的RAM角色(應被授予AliyunOOSReadOnlyAccess及AliyunOSSReadOnlyAccess的系統權限,且信任服務為ECS云服務器),單擊執行,執行列表里可以看到執行成功。

    • 如果沒有準備好的角色,參照如下步驟,創建角色。

      1. 登錄RAM控制臺,單擊創建角色,受信服務選擇云服務器。

      2. 為新建角色授予AliyunOOSReadOnlyAccess和AliyunOSSReadOnlyAccess。

        10

      3. 回到為批量操作實例-實例操作-添加角色,完成實例的角色授予。

  4. 實例配置好角色后,回到我的軟件執行安裝軟件,選擇已授予instanceRole的實例,配置完后,單擊立即執行。

    11

  5. 最后我們看到執行結果成功了,并且機器上的wordpress /var/www/html里的內容也變成了最新的,在執行詳情可查看具體信息。12

總結

以上我們完成了基于OOS+Jenkins的CICD流程,通過OOS我的軟件功能,可以進行軟件版本的管理和應用分批部署,在Jenkins中,也支持設置為直接調用OOS我的軟件自動安裝,以此來完成部署的全自動化,后續我們還將介紹如何用OOS+Jenkins自動更新鏡像。