Bash

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

  • April 12, 2022

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

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

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

在此處輸入圖像描述

我想你可以在這裡找到你的安裝電子郵件地址:

cat /etc/pve/user.cfg

要獲取電子郵件地址:

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

在 PVE6 和 PVE7 上測試,但請注意我只有一個使用者(root)。

在 GUI 中,您可以在 Datacenter / Permissions / Users 下找到它,點兩下您的使用者,瞧!

您可以將“模板”( /etc/pve/priv/acme/default )從另一個 LE 證書工作的 proxmox 複製到 /etc/pve/priv/acme/default 並執行訂單證書。

pvenode acme cert order

我建議創建類似letsencrypt@example.com 的郵件並將其包含在模板中。

我在 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

引用自:https://serverfault.com/questions/1098432