Linux/AlmaLinux8/cloud-init
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
RIGHT:[[Linux 関係覚え書き]]
* Cloud-init [#l26408e2]
vSphere 環境の AlmaLinux を cloud-init 対応にし,テンプレ...
また,テンプレートからのデプロイ方法
** 参考 [#w51eb7ed]
- https://changineer.info/vmware/hypervisor/vmware_cloud_...
- https://qiita.com/pioka/items/85ba1d4889e21822cca2
- https://docs.redhat.com/ja/documentation/red_hat_enterp...
* テンプレートとなる AlamLinux を用意する [#t8981047]
AlmaLinux のインストール,設定自体は省略する.
** cloud-init [#qfc773fa]
テンプレートとなる AlmaLinux に cloud-init をインストール...
# dnf install cloud-init
必要があれば cloud-init の設定(/etc/cloud/cloud.cfg)を設...
その後仮想マシンを停止し,テンプレートを作成しておく.
* デプロイ時に必要な iso ファイルを作成 [#pdf2e513]
もう一台の Linux を用意(操作用)して,適当なディレクトリを...
以下のファイルを同じディレクトリ内に作成する
- meta-data # 必須
- user-data # 必須
- network-config # 必須ではない
- vendor-data # 必須ではない
設定ファイルのサンプルは cloud-init をインストールしたサ...
/usr/share/doc/cloud-init/examples
** metadata [#bfd5c70e]
ホスト名などを記述
instance-id: ci-test-01
local-hostname: test01.example.com
** user-data [#a1551453]
初期パスワードや sshd の設定などを記述
1行目の "#cloud-config" は必須,固定行.
例1
#cloud-config
password: 'my-P2ssword'
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
- 'ssh-rsa XXXX...xxxx xxxxxxxxxxxx@example.com'
例 2
#cloud-config
ssh_pwauth: true
users:
- name: 'user01'
plain_text_passwd: 'my-P2ssword'
ssh_authorized_keys:
- 'ssh-ed25519 XXXX...xxxx xxxxxxxxxxxx@example.com'
groups: user01,wheel
shell: '/bin/bash'
lock_passwd: false
"users:" を指定しないとデフォルトのユーザが作成される.
デフォルトユーザ作成を抑制するには /etc/cloud/cloud.cnf ...
users: []
と記載しておく.
** network-config [#n79d732f]
ネットワークの設定を記述
記述方法は,netplan と同じ書式
例 1
version: 2
ethernets:
interface0:
match:
name: '*ens192*'
set-name: ens192
dhcp4: no
dhcp6: no
addresses:
- 192.168.0.51/24
gateway4: 192.168.0.1
例 2
version: 2
ethernets:
ens192:
dhcp4: false
addresses: ["192.168.0.52/24"]
gateway4: "192.168.0.1"
nameservers:
addresses:
- "192.168.0.1"
- "8.8.8.8"
** ISOファイルの作成 [#j1f3fe2e]
操作用 Linux に genisoimage をインストール
# dnf install genisoimage
作成したファイル(meta-data 等)を置いたフォルダで iso イメ...
なお,ボリューム名(-volid)は "cidata" の固定名でないとい...
$ genisoimage \
-output ci-test-01.iso \
-volid cidata \
-joliet -rock user-data meta-data network-config
macOS で iso イメージを作成する場合は,
ディスクユーティリティで指定したフォルダを
- イメージフォーマット DVD/CD マスター
を選んで ci-test-01.cdr ファイルを作成する.
その後,
hdiutil makehybrid -iso -joliet \
-joliet-volume-name cidata \
-o ci-test-01.iso ci-test-01.cdr
として iso ファイルを作成する.
* デプロイ [#l11d5db6]
作成した iso を ESXi のデータストアに保存する.
その後,テンプレートから仮想マシンを作成し(この時点では起...
最初の起動時にデータストアに保存した iso(上記の例では ci-...
接続した状態で起動する.
そうすると,起動時に cloud-init が走って各種設定が行われ...
* cloud-init 後の更新 [#vde06a4a]
一度 cloud-init でデプロイしたマシンを cloud-init で更新...
meta-data の instance-id
instance-id: ci-test-01
を変更して,最初と同じように iso を接続して再度読み込ませ...
* テンプレートの更新 [#qcb20686]
cloud-init が実行された記録は
- /var/lib/cloud/instances/
- /var/lib/cloud/instance
- /var/lib/cloud/data/
に残骸が残るので
# rm -Rf /var/lib/cloud/instances/
# rm -Rf /var/lib/cloud/instance
# rm -Rf /var/lib/cloud/data/
をするか
# cloud-init clean
をした後にシャットダウンして,テンプレートに変換すれば良...
なお,cloud-init の実行ログは
/var/log/cloud-init.log
に出力されるので,
# grep Writing /var/log/cloud-init.log
とすれば,どのファイルが更新されたかわかる.
更新したくない項目があれば(例えばバックアップから戻した場...
# vi /etc/cloud/cloud.cfg
を編集して
cloud_init_modules:
- disk_setup
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- rsyslog
- users-groups
# - ssh
コメントアウトすればよい.
終了行:
RIGHT:[[Linux 関係覚え書き]]
* Cloud-init [#l26408e2]
vSphere 環境の AlmaLinux を cloud-init 対応にし,テンプレ...
また,テンプレートからのデプロイ方法
** 参考 [#w51eb7ed]
- https://changineer.info/vmware/hypervisor/vmware_cloud_...
- https://qiita.com/pioka/items/85ba1d4889e21822cca2
- https://docs.redhat.com/ja/documentation/red_hat_enterp...
* テンプレートとなる AlamLinux を用意する [#t8981047]
AlmaLinux のインストール,設定自体は省略する.
** cloud-init [#qfc773fa]
テンプレートとなる AlmaLinux に cloud-init をインストール...
# dnf install cloud-init
必要があれば cloud-init の設定(/etc/cloud/cloud.cfg)を設...
その後仮想マシンを停止し,テンプレートを作成しておく.
* デプロイ時に必要な iso ファイルを作成 [#pdf2e513]
もう一台の Linux を用意(操作用)して,適当なディレクトリを...
以下のファイルを同じディレクトリ内に作成する
- meta-data # 必須
- user-data # 必須
- network-config # 必須ではない
- vendor-data # 必須ではない
設定ファイルのサンプルは cloud-init をインストールしたサ...
/usr/share/doc/cloud-init/examples
** metadata [#bfd5c70e]
ホスト名などを記述
instance-id: ci-test-01
local-hostname: test01.example.com
** user-data [#a1551453]
初期パスワードや sshd の設定などを記述
1行目の "#cloud-config" は必須,固定行.
例1
#cloud-config
password: 'my-P2ssword'
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
- 'ssh-rsa XXXX...xxxx xxxxxxxxxxxx@example.com'
例 2
#cloud-config
ssh_pwauth: true
users:
- name: 'user01'
plain_text_passwd: 'my-P2ssword'
ssh_authorized_keys:
- 'ssh-ed25519 XXXX...xxxx xxxxxxxxxxxx@example.com'
groups: user01,wheel
shell: '/bin/bash'
lock_passwd: false
"users:" を指定しないとデフォルトのユーザが作成される.
デフォルトユーザ作成を抑制するには /etc/cloud/cloud.cnf ...
users: []
と記載しておく.
** network-config [#n79d732f]
ネットワークの設定を記述
記述方法は,netplan と同じ書式
例 1
version: 2
ethernets:
interface0:
match:
name: '*ens192*'
set-name: ens192
dhcp4: no
dhcp6: no
addresses:
- 192.168.0.51/24
gateway4: 192.168.0.1
例 2
version: 2
ethernets:
ens192:
dhcp4: false
addresses: ["192.168.0.52/24"]
gateway4: "192.168.0.1"
nameservers:
addresses:
- "192.168.0.1"
- "8.8.8.8"
** ISOファイルの作成 [#j1f3fe2e]
操作用 Linux に genisoimage をインストール
# dnf install genisoimage
作成したファイル(meta-data 等)を置いたフォルダで iso イメ...
なお,ボリューム名(-volid)は "cidata" の固定名でないとい...
$ genisoimage \
-output ci-test-01.iso \
-volid cidata \
-joliet -rock user-data meta-data network-config
macOS で iso イメージを作成する場合は,
ディスクユーティリティで指定したフォルダを
- イメージフォーマット DVD/CD マスター
を選んで ci-test-01.cdr ファイルを作成する.
その後,
hdiutil makehybrid -iso -joliet \
-joliet-volume-name cidata \
-o ci-test-01.iso ci-test-01.cdr
として iso ファイルを作成する.
* デプロイ [#l11d5db6]
作成した iso を ESXi のデータストアに保存する.
その後,テンプレートから仮想マシンを作成し(この時点では起...
最初の起動時にデータストアに保存した iso(上記の例では ci-...
接続した状態で起動する.
そうすると,起動時に cloud-init が走って各種設定が行われ...
* cloud-init 後の更新 [#vde06a4a]
一度 cloud-init でデプロイしたマシンを cloud-init で更新...
meta-data の instance-id
instance-id: ci-test-01
を変更して,最初と同じように iso を接続して再度読み込ませ...
* テンプレートの更新 [#qcb20686]
cloud-init が実行された記録は
- /var/lib/cloud/instances/
- /var/lib/cloud/instance
- /var/lib/cloud/data/
に残骸が残るので
# rm -Rf /var/lib/cloud/instances/
# rm -Rf /var/lib/cloud/instance
# rm -Rf /var/lib/cloud/data/
をするか
# cloud-init clean
をした後にシャットダウンして,テンプレートに変換すれば良...
なお,cloud-init の実行ログは
/var/log/cloud-init.log
に出力されるので,
# grep Writing /var/log/cloud-init.log
とすれば,どのファイルが更新されたかわかる.
更新したくない項目があれば(例えばバックアップから戻した場...
# vi /etc/cloud/cloud.cfg
を編集して
cloud_init_modules:
- disk_setup
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- rsyslog
- users-groups
# - ssh
コメントアウトすればよい.
ページ名: