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

使用自定義數(shù)據(jù)進(jìn)行實(shí)例初始化

更新時(shí)間:

如您希望在創(chuàng)建ECS實(shí)例時(shí)完成系統(tǒng)配置或運(yùn)行特定業(yè)務(wù)腳本,例如預(yù)裝Nginx、Docker等軟件或修改主機(jī)名等,可以通過(guò)設(shè)置自定義數(shù)據(jù)參數(shù)來(lái)實(shí)現(xiàn)。

自定義數(shù)據(jù)介紹

實(shí)例自定義數(shù)據(jù)是指用戶上傳給實(shí)例的腳本、指令或配置文件等數(shù)據(jù),可用來(lái)完成實(shí)例初始化或其他配置,例如,在實(shí)例首次啟動(dòng)時(shí),自動(dòng)運(yùn)行服務(wù)啟動(dòng)腳本、安裝軟件、打印日志等。自定義數(shù)據(jù)支持在實(shí)例首次啟動(dòng)時(shí)自動(dòng)運(yùn)行,部分自定義數(shù)據(jù)格式還支持在Linux實(shí)例每次啟動(dòng)時(shí)都運(yùn)行。詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)自定義數(shù)據(jù)格式及運(yùn)行頻率。

使用限制

  • 實(shí)例的網(wǎng)絡(luò)類型必須為專有網(wǎng)絡(luò)VPC。

  • 實(shí)例必須使用公共鏡像或基于公共鏡像創(chuàng)建的自定義鏡像,且操作系統(tǒng)需為以下類型之一:

    • Alibaba Cloud Linux、CentOS、CentOS Stream、Ubuntu、SUSE Linux Enterprise Server、Red Hat Enterprise Linux、OpenSUSE、Debian、AlmaLinux、Rocky Linux、Fedora

    • Windows Server 2008 R2及更高版本

  • 已停售的實(shí)例規(guī)格中,僅I/O優(yōu)化實(shí)例支持實(shí)例自定義數(shù)據(jù)功能,非I/O優(yōu)化實(shí)例不支持該功能。更多信息,請(qǐng)參見(jiàn)已停售的實(shí)例規(guī)格

創(chuàng)建實(shí)例時(shí)使用自定義數(shù)據(jù)

1. 準(zhǔn)備自定義數(shù)據(jù)

初始化工具在實(shí)例初始化過(guò)程中,通過(guò)讀取用戶提供的自定義數(shù)據(jù)以完成自定義配置。Linux實(shí)例和Windows實(shí)例使用不同的初始化工具。此外,同一初始化工具支持多種自定義數(shù)據(jù)格式。有關(guān)數(shù)據(jù)格式及其運(yùn)行頻率的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)以下內(nèi)容。

自定義數(shù)據(jù)格式及運(yùn)行頻率

Linux實(shí)例

Linux實(shí)例使用cloud-init組件實(shí)現(xiàn)實(shí)例初始化動(dòng)作。根據(jù)實(shí)例是否首次啟動(dòng),執(zhí)行不同的配置內(nèi)容(一些使用較早版本鏡像的實(shí)例也采用Upstart Job進(jìn)行初始化工作)。

cloud-init工具支持的自定義數(shù)據(jù)類型包括可直接配置實(shí)例的User-DataCloud Config格式,同時(shí)還支持其他用戶數(shù)據(jù)格式,最常見(jiàn)的為include文件和Gzip壓縮內(nèi)容。除cloud-init初始化工具外,一些使用較早版本鏡像的實(shí)例也采用Upstart Job進(jìn)行初始化工作。

說(shuō)明
  • 自定義數(shù)據(jù)格式的詳細(xì)說(shuō)明,可參見(jiàn)cloud-init文檔User-Data Formats。

  • 如果您的User-Data腳本、Cloud Config數(shù)據(jù)或Include文件內(nèi)容的大小超過(guò)32 KB,數(shù)據(jù)類型建議選擇Gzip壓縮內(nèi)容

  • 如果任務(wù)需要在實(shí)例每次啟動(dòng)時(shí)都執(zhí)行,數(shù)據(jù)類型建議選擇Cloud Config數(shù)據(jù)Upstart Job。

User-Data腳本

  • 簡(jiǎn)介

    User-Data腳本傳入Linux實(shí)例后直接作為Shell腳本執(zhí)行,且僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次。

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次,重啟實(shí)例不會(huì)再自動(dòng)運(yùn)行。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

    重要

    以下情況不會(huì)自動(dòng)運(yùn)行腳本:

    • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

    • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    首行均以#!開(kāi)頭。

  • User-Data腳本示例

    • 運(yùn)行自定義腳本

      #!/bin/sh
      echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

      示例User-Data腳本的效果是在實(shí)例首次啟動(dòng)時(shí),向userdata_test.txt文件寫入系統(tǒng)時(shí)間。

    • 自定義實(shí)例軟件源、DNS解析配置及時(shí)間同步服務(wù)

      在創(chuàng)建實(shí)例時(shí),您可以通過(guò)User-Data腳本自定義實(shí)例的軟件源、DNS解析配置及時(shí)間同步服務(wù)。以下示例以CentOS Stream 9為例,實(shí)際使用中請(qǐng)根據(jù)您的操作系統(tǒng)進(jìn)行相應(yīng)配置替換。

      重要

      系統(tǒng)會(huì)在實(shí)例啟動(dòng)時(shí)自動(dòng)配置默認(rèn)的yum源、NTP服務(wù)和DNS服務(wù),您可以使用實(shí)例自定義數(shù)據(jù)更改默認(rèn)的yum源、NTP服務(wù)和DNS服務(wù),但請(qǐng)注意:

      • 如果您自定義了yum源,阿里云官方不再提供yum源相關(guān)支持。

      • 如果您自定義了NTP服務(wù),阿里云官方不再提供相關(guān)時(shí)間同步服務(wù)。

      #!/bin/sh
      # Modify DNS
      echo "nameserve 114.114.114.114" | tee /etc/resolv.conf
      # Modify yum repo and update
      cp /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.bak
      cp /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.bak
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos.repo
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos-addons.repo
      yum update -y
      # Modify NTP Server
      echo "server ntp1.aliyun.com" | tee /etc/ntp.conf
      systemctl restart ntpd.service
      說(shuō)明

      其中114.114.114.114為DNS服務(wù)器地址、https://mirror.stream.centos.org為CentOS Stream的yum倉(cāng)庫(kù)地址、server ntp1.aliyun.com為阿里云的NTP服務(wù)器地址,請(qǐng)您根據(jù)實(shí)際環(huán)境替換。

      您也可以使用Cloud Config數(shù)據(jù)更改yum源,但是不夠靈活,不能適配阿里云已對(duì)部分yum源進(jìn)行預(yù)配置的情況,建議使用User-Data腳本。

    • 自定義管理員賬號(hào)

      Linux實(shí)例默認(rèn)使用root用戶作為管理員,您可以使用實(shí)例自定義數(shù)據(jù)使用其他用戶作為管理員。

      #!/bin/sh
      useradd test-user
      echo "test-user   ALL=(ALL)        NOPASSWD:ALL" | tee -a /etc/sudoers
      mkdir /home/test-user/.ssh
      touch /home/test-user/.ssh/authorized_keys
      echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis****" | tee -a /home/test-user/.ssh/authorized_keys
      說(shuō)明

      請(qǐng)使用您的公鑰替換示例中的公鑰ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis****

說(shuō)明

當(dāng)User-Data執(zhí)行遇到問(wèn)題時(shí),可以通過(guò)云助手公共命令ACS-ECS-UserData-Check-for-linux.sh來(lái)獲取失敗相關(guān)的錯(cuò)誤日志。如果返回有錯(cuò)誤信息表示腳本執(zhí)行有問(wèn)題,如果沒(méi)有返回錯(cuò)誤信息表示執(zhí)行沒(méi)有報(bào)錯(cuò),需要排查其他方面。關(guān)于云助手公共命令的更多信息,請(qǐng)參見(jiàn)查看和執(zhí)行公共命令

Cloud Config數(shù)據(jù)

  • 簡(jiǎn)介

    在Cloud-init中,定義了一系列的功能模塊,來(lái)完成部分需要執(zhí)行的任務(wù)和配置,例如安裝軟件包、設(shè)置網(wǎng)絡(luò)等。執(zhí)行哪些模塊及具體的執(zhí)行邏輯,由Cloud Config數(shù)據(jù)決定,可從vendordata、自定義數(shù)據(jù)、內(nèi)核參數(shù)中獲取。在創(chuàng)建ECS實(shí)例時(shí),用戶可自定義Cloud Config數(shù)據(jù),指定需要執(zhí)行的模塊和任務(wù),并作為自定義數(shù)據(jù)提供給實(shí)例。實(shí)例啟動(dòng)時(shí),cloud-init會(huì)讀取并解析Cloud Config數(shù)據(jù),并按照配置文件中的指示運(yùn)行對(duì)應(yīng)模塊并執(zhí)行配置任務(wù),自動(dòng)配置和部署ECS實(shí)例。

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:Cloud Config數(shù)據(jù)中的任務(wù)是否會(huì)被執(zhí)行,取決于這些任務(wù)對(duì)應(yīng)模塊的頻率設(shè)置。各模塊的說(shuō)明,請(qǐng)參見(jiàn)Modules。

      • 頻率為once-per-instance:僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行。例如配置的是Apt、Set Passwords等模塊,運(yùn)行頻率為once-per-instance,重啟實(shí)例時(shí)不會(huì)運(yùn)行。

      • 頻率為always:實(shí)例每次啟動(dòng)都運(yùn)行。例如配置的是Bootcmd、Update Etc Hosts等模塊,運(yùn)行頻率為always,實(shí)例每次啟動(dòng)都運(yùn)行。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    • 首行為#cloud-config,且起始位置不能有空格。

    • 必須遵循YAML語(yǔ)法編寫內(nèi)容。

  • Cloud Config數(shù)據(jù)示例

    • 自定義實(shí)例軟件源

      自定義數(shù)據(jù)區(qū)域輸入以下內(nèi)容,以配置自定義實(shí)例軟件源。示例中使用Ubuntu鏡像創(chuàng)建實(shí)例,如果您使用其他鏡像,請(qǐng)?zhí)鎿Q為對(duì)應(yīng)模塊的配置內(nèi)容。

      #cloud-config
      apt:
        preserve_sources_list: false
        disable_suites:
          - $RELEASE-updates
          - backports
          - $RELEASE
          - mysuite
        primary:
          - arches:
              - amd64
              - i386
              - default
            uri: http://us.archive.ubuntu.com/ubuntu
    • 配置自動(dòng)安裝nginx服務(wù)

      自定義數(shù)據(jù)區(qū)域輸入如下內(nèi)容,以配置實(shí)例自動(dòng)安裝nginx服務(wù)。

      #cloud-config
      packages: 
       - nginx 
      runcmd: 
       - systemctl start nginx.service
    • 配置自定義主機(jī)名

      自定義數(shù)據(jù)區(qū)域輸入如下內(nèi)容,以自定義設(shè)置主機(jī)名。

      #cloud-config
      hostname: my-instance
      fqdn: my-instance.localdomain
    • 配置自動(dòng)運(yùn)行自定義腳本

      自定義數(shù)據(jù)區(qū)域輸入如下內(nèi)容,以配置實(shí)例每次啟動(dòng)時(shí)自動(dòng)運(yùn)行shell腳本。

      #cloud-config
      bootcmd:
      - echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

Include文件

  • 簡(jiǎn)介

    通過(guò)Include文件指向一個(gè)或多個(gè)User-Data腳本或Cloud Config數(shù)據(jù)的鏈接,多個(gè)鏈接按行分隔。實(shí)例啟動(dòng)時(shí),cloud-init會(huì)逐個(gè)解析并讀取鏈接里的內(nèi)容。如果在讀取某一個(gè)鏈接的內(nèi)容時(shí)出錯(cuò),則停止讀取剩余的鏈接。

    說(shuō)明

    您可以通過(guò)阿里云對(duì)象存儲(chǔ)OSS,上傳User-Data腳本或Cloud Config數(shù)據(jù)、獲取鏈接、設(shè)置鏈接有效期等。具體操作,請(qǐng)參見(jiàn)OSS控制臺(tái)快速入門。

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:執(zhí)行頻率由鏈接里的內(nèi)容決定。例如,鏈接的內(nèi)容為User-Data腳本,則僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次;腳本類型鏈接的內(nèi)容為Cloud Config數(shù)據(jù),則遵循Cloud Config數(shù)據(jù)的運(yùn)行頻率。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    首行為#include,且起始位置不能有空格。

  • Include文件示例

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.sh

    示例Include文件包含一個(gè)腳本鏈接,該腳本為User-Data腳本,則僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次。

    說(shuō)明

    如果您采用Include文件或Gzip壓縮內(nèi)容的方式,需要使用存儲(chǔ)服務(wù)上傳腳本、獲取腳本鏈接、設(shè)置鏈接有效期等操作,推薦您使用阿里云對(duì)象存儲(chǔ)OSS。具體操作,請(qǐng)參見(jiàn)OSS控制臺(tái)快速入門

Gzip壓縮內(nèi)容

  • 簡(jiǎn)介

    如果您的User-Data腳本、Cloud Config數(shù)據(jù)或Include文件內(nèi)容的大小超過(guò)32 KB,可以采用Gzip壓縮內(nèi)容(.gz格式)并做成鏈接,然后以Include文件的形式輸入。cloud-init會(huì)自動(dòng)解壓Gzip壓縮內(nèi)容,運(yùn)行解壓后內(nèi)容的效果和直接傳入后運(yùn)行沒(méi)有區(qū)別。

    說(shuō)明

    您可以通過(guò)阿里云對(duì)象存儲(chǔ)OSS,上傳User-Data腳本或Cloud Config數(shù)據(jù)、獲取鏈接、設(shè)置鏈接有效期等。具體操作,請(qǐng)參見(jiàn)OSS控制臺(tái)快速入門。

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:由腳本類型和模塊類型決定。例如,Gzip壓縮內(nèi)容鏈接的腳本類型為User-Data腳本,則僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    首行為#include,且起始位置不能有空格。

  • Gzip壓縮內(nèi)容示例

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.gz

    示例Gzip壓縮內(nèi)容表示Include文件包含一個(gè)Gzip壓縮內(nèi)容鏈接,cloud-init讀取該Gzip壓縮內(nèi)容后會(huì)自動(dòng)解壓并運(yùn)行,該Gzip壓縮內(nèi)容由User-Data腳本壓縮得到,所以僅在實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次。

Upstart Job

說(shuō)明

如需使用Upstart Job,您需要為實(shí)例安裝upstart服務(wù),支持采用upstart服務(wù)管理啟動(dòng)行為的操作系統(tǒng)有CentOS 6、Ubuntu 10/12/14以及Debian 6/7。

  • 簡(jiǎn)介

    Upstart是一個(gè)事件驅(qū)動(dòng)型的初始化系統(tǒng),Upstart Job是一個(gè)配置文件,定義了一個(gè)服務(wù)或任務(wù)何時(shí)啟動(dòng)、停止和如何運(yùn)行。它通常放置在/etc/init/目錄下,文件擴(kuò)展名為.conf。

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:實(shí)例每次啟動(dòng)都會(huì)自動(dòng)運(yùn)行。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    首行為#upstart-job,且起始位置不能有空格。

  • Upstart Job內(nèi)容示例

    #upstart-job
    description "upstart test"
    start on runlevel [2345] #在運(yùn)行級(jí)別2、3、4、5執(zhí)行
    stop on runlevel [!2345] #在運(yùn)行級(jí)別2、3、4、5以外不執(zhí)行
    exec echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt

    示例Upstart Job表示在系統(tǒng)進(jìn)入指定的運(yùn)行級(jí)別時(shí)輸出一條包含時(shí)間戳的消息,并將該消息記錄到/root/output.txt文件中。當(dāng)系統(tǒng)離開(kāi)這些運(yùn)行級(jí)別時(shí),作業(yè)會(huì)停止執(zhí)行。

Windows實(shí)例

Windows實(shí)例是通過(guò)Vminit工具的Plugin_Main_CloudinitUserData插件來(lái)運(yùn)行自定義數(shù)據(jù)腳本,該插件僅支持在實(shí)例首次啟動(dòng)時(shí)運(yùn)行,該插件支持Bat和PowerShell兩種腳本。

bat腳本

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次,重啟實(shí)例不會(huì)自動(dòng)運(yùn)行。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    • 首行為[bat],且起始位置不能有空格。

    • 只能輸入半角字符,不能有多余字符。

    • 寫入數(shù)據(jù)的路徑不能為C:\Users目錄,否則自定義數(shù)據(jù)會(huì)執(zhí)行失敗。

      說(shuō)明

      在Windows系統(tǒng)中,C:\Users及其子目錄是用戶配置文件和數(shù)據(jù)的默認(rèn)存儲(chǔ)位置,需要登錄系統(tǒng)后才可以訪問(wèn),而在系統(tǒng)初始化執(zhí)行userdata階段實(shí)際還未登錄系統(tǒng),所以寫入數(shù)據(jù)到C:\Users目錄會(huì)失敗。

  • Bat腳本示例

    • 運(yùn)行自定義腳本

      [bat]
      echo "bat test" > C:\userdata_test.txt

      示例Bat腳本的效果是在實(shí)例首次啟動(dòng)時(shí)向userdata_test.txt文件寫入內(nèi)容"bat test"。

PowerShell腳本

  • 運(yùn)行頻率

    • 啟動(dòng)實(shí)例:實(shí)例首次啟動(dòng)時(shí)運(yùn)行一次,重啟實(shí)例不會(huì)自動(dòng)運(yùn)行。

    • 更換操作系統(tǒng):自動(dòng)運(yùn)行。

    • 重新初始化系統(tǒng)盤:自動(dòng)運(yùn)行。

      重要

      以下情況不會(huì)自動(dòng)運(yùn)行腳本:

      • 如果更換操作系統(tǒng)使用的是自定義鏡像且來(lái)源于原實(shí)例,更換操作系統(tǒng)時(shí)會(huì)判斷實(shí)例不是初次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

      • 如果創(chuàng)建使用的是自定義鏡像,則創(chuàng)建實(shí)例時(shí)系統(tǒng)盤就有數(shù)據(jù),初始化系統(tǒng)盤時(shí)會(huì)判斷實(shí)例不是首次啟動(dòng),因此不會(huì)自動(dòng)運(yùn)行腳本。

  • 格式

    • 首行為[powershell],且起始位置不能有空格。

    • 只能輸入半角字符,不能有多余字符。

    • 寫入數(shù)據(jù)的路徑不能為C:\Users目錄,否則自定義數(shù)據(jù)會(huì)執(zhí)行失敗。

      說(shuō)明

      在Windows系統(tǒng)中,C:\Users及其子目錄是用戶配置文件和數(shù)據(jù)的默認(rèn)存儲(chǔ)位置,需要登錄系統(tǒng)后才可以訪問(wèn),而在系統(tǒng)初始化執(zhí)行userdata階段實(shí)際還未登錄系統(tǒng),所以寫入數(shù)據(jù)到C:\Users目錄會(huì)失敗。

  • PowerShell腳本示例

    • 運(yùn)行自定義腳本

      [powershell]
      write-output "powershell test" | Out-File C:\userdata_test.txt

      示例PowerShell腳本的效果是在實(shí)例首次啟動(dòng)時(shí)向userdata_test.txt文件寫入內(nèi)容powershell test

2. 創(chuàng)建實(shí)例時(shí)使用自定義數(shù)據(jù)

  • 通過(guò)控制臺(tái)創(chuàng)建實(shí)例

    實(shí)例購(gòu)買頁(yè)展開(kāi)高級(jí)選項(xiàng)區(qū)域,在自定義數(shù)據(jù)區(qū)域輸入實(shí)例自定義數(shù)據(jù)。

    重要

    如果實(shí)例自定義數(shù)據(jù)已進(jìn)行Base64編碼,請(qǐng)勾選輸入已采用Base64編碼,且在進(jìn)行Base64編碼前自定義數(shù)據(jù)內(nèi)容的大小不能超過(guò)32 KB。否則,無(wú)需勾選,系統(tǒng)會(huì)自動(dòng)對(duì)內(nèi)容進(jìn)行Base64編碼。

  • 通過(guò)API創(chuàng)建實(shí)例

    如果您通過(guò)API方式創(chuàng)建實(shí)例,請(qǐng)?jiān)?a href="http://bestwisewords.com/zh/ecs/developer-reference/api-ecs-2014-05-26-runinstances" id="fb9fcc5894e80" title="" class="xref">RunInstances - 批量創(chuàng)建ECS實(shí)例或CreateInstance - 創(chuàng)建ECS實(shí)例接口指定UserData字段。

3. 驗(yàn)證自定義數(shù)據(jù)運(yùn)行效果

您需要結(jié)合自定義腳本的實(shí)際內(nèi)容進(jìn)行運(yùn)行效果的驗(yàn)證,以下以在Linux實(shí)例中傳入如下User-Data腳本為例,為您演示如何進(jìn)行腳本運(yùn)行效果驗(yàn)證。

#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt

該示例中,User-Data腳本的效果是在實(shí)例首次啟動(dòng)時(shí),向userdata_test.txt文件寫入系統(tǒng)時(shí)間。為驗(yàn)證該腳本的執(zhí)行效果,您可以運(yùn)行cat userdata_test.txt命令來(lái)查看效果,系統(tǒng)已經(jīng)向userdata_test.txt文件寫入系統(tǒng)時(shí)間。

view-result

說(shuō)明

當(dāng)User-Data執(zhí)行遇到問(wèn)題時(shí),可以通過(guò)云助手公共命令ACS-ECS-UserData-Check-for-linux.sh來(lái)獲取失敗相關(guān)的錯(cuò)誤日志。如果返回有錯(cuò)誤信息表示腳本執(zhí)行有問(wèn)題,如果沒(méi)有返回錯(cuò)誤信息表示執(zhí)行沒(méi)有報(bào)錯(cuò),需要排查其他方面。關(guān)于云助手公共命令的更多信息,請(qǐng)參見(jiàn)查看和執(zhí)行公共命令。

其他操作

查看已有實(shí)例自定義數(shù)據(jù)

自定義數(shù)據(jù)傳入實(shí)例后,您可以通過(guò)元數(shù)據(jù)服務(wù)或控制臺(tái)查看實(shí)例的自定義數(shù)據(jù)信息。

通過(guò)元數(shù)據(jù)服務(wù)獲取(加固模式)

  • Linux實(shí)例

    TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:180"`
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/user-data
  • Windows實(shí)例

    $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "180"} -Method PUT -Uri http://100.100.100.200/latest/api/token
    Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/user-data
說(shuō)明

通過(guò)控制臺(tái)獲取

  1. 確保實(shí)例處于已停止狀態(tài)。

    重要

    如果實(shí)例的計(jì)費(fèi)方式為按量付費(fèi)、網(wǎng)絡(luò)類型為專有網(wǎng)絡(luò),停止實(shí)例時(shí),停止模式建議選擇普通停機(jī)模式,選擇節(jié)省停機(jī)模式會(huì)因計(jì)算資源(vCPU和內(nèi)存)被回收,再次啟動(dòng)實(shí)例時(shí)可能因?yàn)閹?kù)存不足導(dǎo)致啟動(dòng)失敗。更多信息,請(qǐng)參見(jiàn)節(jié)省停機(jī)模式。

  2. 實(shí)例頁(yè)面,選擇icon1 > 實(shí)例設(shè)置 > 設(shè)置用戶數(shù)據(jù),然后在用戶數(shù)據(jù)區(qū)域查看已設(shè)置的自定義數(shù)據(jù)。

通過(guò)調(diào)用API獲取

您可以通過(guò)調(diào)用DescribeUserData接口查詢一臺(tái)ECS實(shí)例的自定義數(shù)據(jù)。更多信息,請(qǐng)參見(jiàn)DescribeUserData

修改已有實(shí)例自定義數(shù)據(jù)

如需修改已有實(shí)例的自定義數(shù)據(jù),您可以通過(guò)控制臺(tái)進(jìn)行操作。

  1. 確保實(shí)例處于已停止狀態(tài)。

    重要

    如果實(shí)例的計(jì)費(fèi)方式為按量付費(fèi)、網(wǎng)絡(luò)類型為專有網(wǎng)絡(luò),停止實(shí)例時(shí),停止模式建議選擇普通停機(jī)模式,選擇節(jié)省停機(jī)模式會(huì)因計(jì)算資源(vCPU和內(nèi)存)被回收,再次啟動(dòng)實(shí)例時(shí)可能因?yàn)閹?kù)存不足導(dǎo)致啟動(dòng)失敗。更多信息,請(qǐng)參見(jiàn)節(jié)省停機(jī)模式。

  2. 實(shí)例頁(yè)面,選擇icon1 > 實(shí)例設(shè)置 > 設(shè)置用戶數(shù)據(jù),然后在用戶數(shù)據(jù)區(qū)域輸入自定義數(shù)據(jù)。

重要

修改已有實(shí)例的自定義數(shù)據(jù)之后,在啟動(dòng)實(shí)例后自定義數(shù)據(jù)腳本是否被執(zhí)行,取決于自定義數(shù)據(jù)的格式及運(yùn)行頻率,請(qǐng)您在修改自定義數(shù)據(jù)之前明確您的需求,更多信息,請(qǐng)參見(jiàn)自定義數(shù)據(jù)格式及運(yùn)行頻率

相關(guān)文檔

  • 您也可以通過(guò)彈性伸縮的自定義數(shù)據(jù)功能,讓多臺(tái)ECS實(shí)例在啟動(dòng)時(shí)自動(dòng)執(zhí)行配置的腳本或命令,確保ECS實(shí)例配置的一致性,簡(jiǎn)化了運(yùn)維工作。更多信息,請(qǐng)參見(jiàn)使用實(shí)例自定義數(shù)據(jù)自動(dòng)配置ECS實(shí)例。

  • 如果希望服務(wù)或腳本因程序異常、服務(wù)器重啟、掉電等被中斷時(shí),及時(shí)恢復(fù)運(yùn)行,云助手插件ecs-tool-servicekeepalive實(shí)現(xiàn)。具體操作,請(qǐng)參見(jiàn)自動(dòng)恢復(fù)服務(wù)。

  • 如果您希望了解更多關(guān)于管理實(shí)例初始化的相關(guān)信息,請(qǐng)參見(jiàn)實(shí)例初始化