如何在 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

相关内容