如何取得我在 shell 中的 Proxmox VE 設定中輸入的電子郵件?

如何取得我在 shell 中的 Proxmox VE 設定中輸入的電子郵件?

當我登入 Proxmox VE7 主機時,我想收到在安裝時設定 Proxmox 時輸入的電子郵件。是否可以?

這個想法是以非互動方式自動執行 certbot 初始化,我寧願使用之前自動輸入的電子郵件,也不願再次在腳本中詢問電子郵件。

澄清一下,我希望在 shell 腳本中獲取我在此處輸入的電子郵件:

在此輸入影像描述

答案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 上進行了測試,但請注意我只有一個使用者(root)。

在 GUI 中,您可以在資料中心/權限/用戶下找到它,雙擊您的用戶,瞧!

答案2

您只需將「範本」( /etc/pve/priv/acme/default )從 LE 憑證正在工作的另一個 proxmox 複製到 /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

相關內容