Bash
如何在 shell 中獲取我在 Proxmox VE 設置中輸入的電子郵件?
當我登錄到我的 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