Proxmox VE セットアップ時に入力したメールをシェルで取得するにはどうすればよいですか?

Proxmox VE セットアップ時に入力したメールをシェルで取得するにはどうすればよいですか?

Proxmox VE7 ホストにログインするときに、インストール時に Proxmox をセットアップしたときに入力した電子メールを取得したいのですが、可能ですか?

アイデアは、certbot の初期化を非対話的に自動化することであり、スクリプトで電子メールを再度要求するよりも、以前に入力した電子メールを自動的に使用したいと考えています。

明確にするために、ここで入力したメールをシェル スクリプト内で取得したいと思います。

ここに画像の説明を入力してください

答え1

インストール用のメールアドレスはここで見つかると思います:

cat /etc/pve/user.cfg

メールアドレスを取得するには:

EMAIL=`cat /etc/pve/user.cfg | awk '{split($0,a,":"); print a[7]}'`
echo $EMAIL
# [email protected]

PVE6 および PVE7 でテストしましたが、ユーザーは 1 人 (root) のみであることに注意してください。

GUI では、Datacenter / Permissions / Users の下にあります。ユーザーをダブルクリックすると、完了です。

答え2

LE 証明書が動作している別の proxmox から「テンプレート」( /etc/pve/priv/acme/default ) を /etc/pve/priv/acme/default にコピーし、証明書の注文を実行するだけです。

pvenode acme cert order

次のようなメールを作成することをお勧めします[メールアドレス]それをテンプレートに含めます。

私はこれを Ansible ロールで使用しています。インスピレーションを得てください :D

##################
#LETS ENCRYPT CERT
##################

- name: Create empty file /etc/pve/priv/acme/default - workaround for action below
  file:
    path: /etc/pve/priv/acme/default
    owner: root
    group: www-data
    mode: '0600'
    state: touch
  become: true
  tags:
    - hypervizor_proxmox_letsencrypt

- name: Copy template of LE CERT account - default
  template:
    src: lets_encrypt/le_account_default.j2
    dest: /etc/pve/priv/acme/default
    owner: root
    group: www-data
    mode: '0600'
  become: true
  tags:
    - hypervizor_proxmox_letsencrypt

- name: Create LETS ENCRYPT cert
  block:
    - name : Create LETS ENCRYPT cert
      shell: pvenode config set --acme domains="$(hostname -f|tr -d [:space:])" && pvenode acme cert order
  rescue:
    - name: Create LETS ENCRYPT cert failed, trying to rescue probably too much retries
      shell: pvenode config set --acme domains="$(hostname -f|tr -d [:space:])" && pvenode acme cert order --force
      ignore_errors: yes
  tags:
    - hypervizor_proxmox_letsencrypt

関連情報