Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

cloud-init に関する FAQ

更新 -

Red Hat Enterprise Linux Atomic Host は cloud-init を使用して、インストールと最初の起動時にシステムを設定します。当初、cloud-init は、クラウドインスタンスの早期初期化を提供するために作成されました。Red Hat Enterprise Linux Atomic Host では、仮想マシンのインストールに使用できます。アップストリームのドキュメントがオンラインで利用できます。

注意: マシンを最初に起動した時だけ cloud-init を実行します。ファイルで構文エラーが発生したため cloud-init に失敗した場合や、ユーザーの信用情報など必要なディレクティブがすべて含まれていない場合は、新しいインスタンスを作成して起動する必要があります。新しい cloud-init ファイルで失敗したインスタンスを再起動しても有効ではありません

以下は、cloud-init で共通タスクを行う例となります。

  • cloud-init にユーザーを作成するには

    ユーザーを cloud-init に作成するには、meta-data および user-data ファイルを作成し、ISO イメージにパッケージ化します。

    1. ディレクトリを作成し、そのディレクトリに移動します。

      $ mkdir clouinitiso
      $ cd cloudinitiso
      
    2. meta-data という名のファイルを作成します。以下の行を meta-data というファイルに追加します。

      instance-id:Atomic0
      local-hostname: atomic-00
      
    3. user-data という名前のファイルを作成します。以下の行を user-data ファイルに追加します。

      #cloud-config
      password: atomic
      chpasswd:{expire:False}
      ssh_pwauth:True
      ssh_authorized_keys:
        - ssh-rsa AAA...SDvZ user1@domain.com
      

    注意: 上述の user-data ファイルの最終行は、ssh 公開キーです。SSH 公開キーは ~/.ssh/id_rsa.pub に保存されています。

    1. meta-data および user-data を含む ISO イメージを作成します。

      # genisoimage -output atomic0cidata.iso -volid cidata -joliet -rock user-data meta-data
      
    2. atomic0cidata.iso という名前のファイルが生成されます。Red Hat Enterprise Linux Atomic Host をインストールするマシンにこのファイルを添付して、ユーザー名を "cloud-user" にし、パスワードは "atomic" にします。

  • cloud-user のパスワードの有効期限を設定して、最初のログイン時に変更するように設定するには

    cloud-user に、最初のログイン時にパスワードを変更するように設定するには、user-data ファイルで、chpasswd: {expire: False} 行を chpasswd: {expire: True} に変更します。

    #cloud-config
    password: atomic
    chpasswd:{expire:True}
    ssh_pwauth:True
    ssh_authorized_keys:
      - ssh-rsa AAA...SDvz user1@yourdomain.com
      - ssh-rsa AAB...QTuo user2@yourdomain.com
    

    password および chpasswd は、特に指定がない限りデフォルトユーザーで操作するため有効になります。

    注意: これはグローバル設定です。True に設定すると、作成したすべてのユーザー (以下を参照) でパスワードを変更する必要があります。

  • デフォルトのユーザー名を変更するには

    デフォルトのユーザー名を cloud-user から変更するには、user: username 行を user-data ファイルに追加します。

    #cloud-config
    user: username
    password: atomic
    chpasswd:{expire:False}
    ssh_pwauth:True
    ssh_authorized_keys:
      - ssh-rsa AAA...SDvz user1@yourdomain.com
      - ssh-rsa AAB...QTuo user2@yourdomain.com
    
  • root パスワードを設定するには

    root パスワードを設定するには、user-data ファイルの chpasswd セクションにユーザーリストを作成する必要があります。リストのフォーマットは以下のとおりです。空白文字は重要です。リストに空白を持つパスワードを設定するため、空白文字はコロン (:) のいずれの側にも追加しないでください。この方法でユーザーパスワードを設定する場合は、すべてのパスワードをこのセクションに設定する必要があります。つまり、トップのセクションからこのセクションに password: 行を移動する必要があります。

    #cloud-config
    ssh_pwauth:True
    ssh_authorized_keys:
      - ssh-rsa AAA...SDvz user1@yourdomain.com
      - ssh-rsa AAB...QTuo user2@yourdomain.com
    chpasswd:
      list:|
         root:password
         cloud-user:atomic
      expire:False
    
  • 最初のシステム設定時にユーザーをさらに追加したり、ユーザーオプションを設定したりするには

    ユーザーは、user-data ファイルの users セクションに作成され説明されます。このセクションを追加した場合は、デフォルトユーザーのオプションを設定する必要があります。

    users セクションの最初のエントリーは default であるため、デフォルトユーザー cloud-user は、その他のユーザーとともに作成されます。デフォルトの行を削除すると、cloud-user は作成されません。

    #cloud-config
    users: 
      - default
      - name: foobar
        gecos:User N. Ame
        selinux-user: staff_u
        groups: users,wheel
        ssh_pwauth:True
        ssh_authorized_keys:
          - ssh-rsa AA..vz user@domain.com
    chpasswd:
      list:|
        root:password
        cloud-user:atomic
        foobar:foobar
      expire:False
    

    注意: デフォルトでは、se-linux-user 値がない場合、ユーザーには unconfined_u とラベルが追加されます。

    注意: この例では、foobar ユーザーを 2 つのグループ (users および wheel) に保存します。cloud-init 0.7.5 以降では、グループリストに空白文字に使用することはサポートされていません。詳細は Bug #1126365 を参照してください。

  • first boot コマンドを実行するには

    user-data ファイルの runcmd および bootcmd セクションを使用して、起動時および初期化時に任意のコマンドを実行できます。bootcmd セクションは、初期化プロセスの早いうちに実行されます。runcmd セクションは、init によるプロセスの最後のほうで実行されます。これらのコマンドはその後の起動のために保存されず、最初の初期化起動時にのみ実行されます。

    #cloud-config
    users:
      - default
      - name: foobar
        gecos:User N. Ame
        groups: users
    chpasswd:
      list:|
        root:password
        fedora:atomic
        foobar:foobar
      expire:False
    bootcmd:
     - echo New MOTD >> /etc/motd
    runcmd:
     - echo New MOTD2 >> /etc/motd
    
  • さらに sudoer を追加するには

    ユーザーは、sudo および groups エントリーを、以下に示す user-data ファイルの users セクションに追加すれば sudoer として設定できます。

    #cloud-config
    users: 
      - default
      - name: foobar
        gecos:User D. Two
        sudo:["ALL=(ALL) NOPASSWD:ALL"]
        groups: wheel,adm,systemd-journal
        ssh_pwauth:True
        ssh_authorized_keys:
          - ssh-rsa AA...vz user@domain.com
    chpasswd:
      list:|
        root:password
        cloud-user:atomic
        foobar:foobar
      expire:False
    
  • 静的なネットワークを設定するには

    network-interfaces セクションを meta-data ファイルに追加します。このセクションには、ネットワーク設定オプションの通常のセットが含まれます。

    cloud-init で発生している現在のバグのせいで、静的なネットワーク設定は自動的に開始しません。代わりに、デフォルトの DHCP 設定がアクティブになったままとなります。回避策としては、bootcmd ディレクティブからネットワークインターフェイスを手動で停止して再起動することが推奨されます。

    network-interfaces:|
      iface eth0 inet static
      address 192.168.1.10
      network 192.168.1.0
      netmask 255.255.255.0
      broadcast 192.168.1.255
      gateway 192.168.1.254
    bootcmd:
      - ifdown eth0
      - ifup eth0
    
  • cloud-user を削除し、root 以外のユーザーを持たないようにするには

    root ユーザーだけを作成するには、user-data ファイルの users セクションで、root のエントリーを作成します。このセクションは、name オプションと同様シンプルです。

    users: 
      - name: root
    chpasswd:
      list:|
        root:password
      expire:False
    

    また、任意で、以下のように、root ユーザーに SSH キーを設定できます。

    users: 
      - name: root
        ssh_pwauth:True
        ssh_authorized_keys:
          - ssh-rsa AA..vz user@domain.com
    

Comments