Linux での cloud-init のインストールおよび構成
仮想マシンを取り込む前に cloud-init 初期化パッケージをインストールします。
注: 仮想マシンを取り込むために cloud-init パッケージをインストールするときに、
活動化エンジンが既にインストールされている場合は、その活動化エンジンをアンインストールする必要があります。活動化エンジン RPM がインストールされているかどうかを確認するには、仮想マシンで # rpm -qa | grep activation を実行してください。RPM がある場合は、『活動化エンジンのアンインストール』トピックで詳細を調べて、その RPM を削除します。
- cloud-init を SUSE Linux にインストール
- cloud-init を Red Hat Enterprise Linux にインストール
- cloud-init を Ubuntu にインストール
cloud-init を SUSE Linux にインストール
cloud-init 19.1 を SUSE Linux にインストールするには、以下の手順に従います。- RPM を PowerVC 管理サーバー上の /opt/ibm/powervc/images/cloud-init/sles から取得し、仮想マシンにインストールします。
- SLES 12: cloud-init-19.1-1.el7.noarch.rpm
- SLES 15: cloud-init-19.1-2.el7.noarch.rpm
- SUSE Linux
12: インストールの依存関係は SLES メディアまたは SUSE クラウド・リポジトリーから入手できます。
詳しくは、「cloud-init 依存関係の構成」を参照してください。
足りない依存関係に必要となるリポジトリーが見つからなかったり分からなかったりする場合は、SUSE サポートに問い合わせてください。 依存関係をインストールするには、以下のリポジトリーを追加します。
- https://download.opensuse.org/repositories/Cloud:/Tools/SLE_12/
- https://download.opensuse.org/repositories/Virtualization:/containers/SLE_12_SP3/
- https://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_Factory_PowerPC/
コマンド
を実行し、次にzypper addrepo <repo-name>
を実行してから、次のコマンドを実行してパッケージを取得します。zypper refresh
例えば、zypper install
を実行します。zypper addrepo <https://download.opensuse.org/repositories/Cloud:/Tools/SLE_12/> zypper refresh次に、zypper install を実行して、以下のパッケージをダウンロードします。python-requests python2-jsonschema python2-Jinja2 python2-jsonpatch python2-PyYAML python2-oauthlib python2-configobj同様に、残りの URL を使用してパッケージをダウンロードします。
- SUSE Linux
15: インストールの依存関係は SLES メディアまたは SUSE クラウド・リポジトリーから入手できます。
詳しくは、「cloud-init 依存関係の構成」を参照してください。
足りない依存関係に必要となるリポジトリーが見つからなかったり分からなかったりする場合は、SUSE サポートに問い合わせてください。 依存関係をインストールするには、以下のリポジトリーを追加します。
- https://download.opensuse.org/repositories/devel:languages:perl/SLE_15/devel:languages:perl.repo
- https://download.opensuse.org/repositories/filesystems/openSUSE_Leap_15.0/filesystems.repo
- https://download.opensuse.org/repositories/systemsmanagement:saltstack/openSUSE_Leap_15.0/systemsmanagement:saltstack.repo
- https://download.opensuse.org/repositories/security:SELinux/openSUSE_Leap_15.0/security:SELinux.repo
- https://download.opensuse.org/repositories/Cloud:/Tools/SLE_15/
- https://download.opensuse.org/distribution/leap/15.0/repo/oss/
- https://download.opensuse.org/repositories/filesystems/openSUSE_Leap_15.0/
- https://download.opensuse.org/repositories/shells/openSUSE_Factory_PPC/
- https://download.opensuse.org/repositories/utilities/SLE_15/
例えば、
を実行します。zypper addrepo <https://download.opensuse.org/repositories/devel:languages:perl/SLE_15/devel:languages:perl.repo> zypper refresh次に、zypper install を実行して、以下のパッケージをダウンロードします。xfsprogs python3-oauthlib python3-Jinja2 python3-PyYAML python3-distro python3-jsonpatch python3-jsonschema python3-prettytable python3-requests同様に、残りの URL を使用してパッケージをダウンロードします。
注: 仮想マシンに cloud-init RPM がすでにインストールされている場合は、既存の RPM をアンインストールしてから、PowerVC バージョンの RPM をインストールする必要があります。- インストールするには、yum install cloud-init-19.1-1.el7.noarch.rpm を実行します。
- アンインストールするには、rpm -e cloud-init-19.1-1.el7.noarch.rpm を実行します。
- /etc/cloud/cloud.cfg にある
cloud.cfgファイルを以下のように変更します。root ログインを有効にします。
disable_root: false以下のフィールドをpreserve_hostnameの後に追加し、disable_ec2_metadataモジュールを /etc/cloud/cloud.cfg から削除します。datasource_list: [ ConfigDrive, None ] datasource: ConfigDrive: dsmode: local - 以下のコマンドを実行して、cloud-init 関連サービスを有効化および開始します。
systemctl enable cloud-init-local.service systemctl enable cloud-init.service systemctl enable cloud-config.service systemctl enable cloud-final.service systemctl start cloud-init.service systemctl start cloud-init-local.service systemctl start cloud-config.service systemctl start cloud-final.service - 以下のコマンドを実行して、すべての cloud-init サービスがアクティブ状況であることを確認します。
systemctl status cloud-init-local.service systemctl status cloud-init.service systemctl status cloud-config.service systemctl status cloud-final.service - MAC アドレス情報を削除します。
MAC アドレスを削除して必要なポートを開く方法について詳しくは、OpenStack Virtual Machine Image Guide の「No hard-coded MAC address information」情報と「Disable firewall」情報を参照してください。注:
HWADDRに関して「No hard-coded MAC address information」セクションで言及されている /etc/sysconfig/network-scripts ファイル・パスは Red Hat Enterprise Linux にのみ適用されます。 SUSE Linux の場合、HWADDRパスは /etc/sysconfig/network です。 例えば、ifcfg-eth0アダプターの 場合は、SUSE Linux 上で /etc/sysconfig/network/ifcfg-eth0 からHWADDR行を 削除します。- 「No hard-coded MAC address information」セクションに示されているファイル 70-persistent-net.rules および 75-persistent-net-generator.rules は、デプロイメント後に仮想マシンでネットワーク・インターフェースを追加または削除するために必要です。 デプロイの完了後にこれらのファイルをリストアできるように、これらを必ず保存してください。
cloud-init を Red Hat Enterprise Linux にインストール
cloud-init 19.1 を Red Hat Enterprise Linux にインストールするには、以下の手順に従います。cloud-init を Ubuntu にインストール
cloud-init を Ubuntu にインストールするには、以下の手順に従います。- cloud-init をインストールする前に、apt-get または他の任意のパッケージ・マネージャーを 使用して、cloud-init の依存関係をオペレーティング・システムの基本メディアおよび補助メディアからインストールする必要があります。
- Ubuntu 16 の場合:
- RPM を PowerVC 管理サーバー上の /opt/ibm/powervc/images/cloud-init/ubuntu から取得し、仮想マシンにインストールします。
注: 仮想マシンに cloud-init Debian パッケージがすでにインストールされている場合は、既存の Debian パッケージをアンインストールしてから、PowerVC バージョンの Debian パッケージをインストールする必要があります。
apt-mark hold cloud-initを実行します。 これにより、apt-get upgradeの実行時に、PowerVC cloud-init バンドルが別のバージョンによって上書きされないことが保証されます。- MAC アドレス情報を削除します。
MAC アドレスを削除して必要なポートを開く方法について詳しくは、OpenStack Virtual Machine Image Guide の「No hard-coded MAC address information」情報と「Disable firewall」情報を参照してください。
注: 「No hard-coded MAC address information」セクションに示されているファイル 70-persistent-net.rules および 75-persistent-net-generator.rules は、デプロイメント後に仮想マシンでネットワーク・インターフェースを追加または削除するために必要です。 デプロイの完了後にこれらのファイルをリストアできるように、これらを必ず保存してください。
- Ubuntu 16 の場合は、以下のようにします。
- /lib/udev/rules.d/73-special-net-names.rules で、
DRIVERS=="ibmveth"を含む行をコメント化します。 update-initramfs -uを実行します。ibmvethNに対する参照がethNに対する参照になるように、/etc/network/interfaces を変更します。hwaddrがある場合は削除します。
- /lib/udev/rules.d/73-special-net-names.rules で、
- RPM を PowerVC 管理サーバー上の /opt/ibm/powervc/images/cloud-init/ubuntu から取得し、仮想マシンにインストールします。
- Ubuntu 18.04 (Power® 上の KVM のみ) の場合:
-
sudo apt install cloud-initを実行します。 - /etc/netplan/01-netcfg.yaml を /etc/netplan/51-netcfg.yaml に名前変更します。
注: 仮想マシンをデプロイした後は、仮想マシン上でファイル /etc/netplan/51-netcfg.yaml にナビゲートし、そのファイルを現行ネットワーク情報で更新します。
-
cloud.cfgファイル (/etc/cloud/cloud.cfg) を以下の値で変更します。- 以下の値がある場合は変更します。
ない場合は追加します。
disable_root: false - 以下の値を
preserve_hostの後に追加し、disable_ec2_metadataモジュールを /etc/cloud/cloud.cfg から削除します。datasource_list: [ ConfigDrive, None ] datasource: ConfigDrive: dsmode: local以下のコマンドを実行して、cloud-init 関連サービスを有効化および開始します。systemctl enable cloud-init-local.service systemctl enable cloud-init.service systemctl enable cloud-config.service systemctl enable cloud-final.service systemctl start cloud-init.service systemctl start cloud-init-local.service systemctl start cloud-config.service systemctl start cloud-final.service以下のコマンドを実行して、すべての cloud-init サービスがアクティブ状況であることを確認します。systemctl status cloud-init-local.service systemctl status cloud-init.service systemctl status cloud-config.service systemctl status cloud-final.service
- 以下の値がある場合は変更します。
ない場合は追加します。
- Ubuntu 16 の場合、『カスタム PowerVC cloud-init モジュール』にある手順に従います。 このトピックの説明に従って cloud.cfg ファイルを変更することにより、cloud-init カスタム・モジュールを有効化および構成して、cloud-init によるホスト名の設定方法を制御できます。