使っていますクラウド初期化RHEL Atomic Host VMを初期化します。
私のファイルは次のとおりですuser-data
。
#cloud-config
groups:
- ourgroup
users:
- name: muser
primary_group: ourgroup
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_authorized_keys:
- ssh-rsa [REDACTED]
- name: auser
primary_group: ourgroup
passwd: [REDACTED]
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
ssh_pwauth: True
user-data
ユーザーは、このファイルで生成されたISOファイルを使用して仮想マシンを初めて起動したときに作成されます。に示すように、ユーザーはUID 1000で作成され、/etc/passwd
ユーザーはUID 1001で作成されます。auser
muser
muser
この仮想マシンにいくつかのソフトウェアを展開しており、インストールする前にUIDを事前に知っておく必要があります。そのISOファイルを使用してVMをデプロイするたびに、後でmuser
作成されますauser
(したがって、muser
UIDは常に1001です)。
私は、ユーザーがアルファベット順に生成されたか、ファイルにリストされているものとは逆の順序で生成された可能性があると考え、その理論をテストするために4人のユーザーを含むuser-data
別のファイルを作成しました。user-data
しかし、この理論は失敗します。 cloud-initがユーザーを作成する順序がわかりません。
ユーザーが生成される順序を誰も知らない場合、少なくともmuser
UIDは常に1001であると仮定できますか?
答え1
答え2
これはなぜ重要ですか?次のコマンドを使用して、実行時に常にUIDを取得できますid
。
id -n muser
したがって、次のコマンドを実行してUIDを取得するようにインストールスクリプトを変更できます。
uid=$(id -n muser)
echo "Installing mysoftware under UID $uid"