ติดตั้งและกำหนดค่าสภาพแวดล้อมเสมือน ProxMox 6.x/7.x/8.x บนเซิร์ฟเวอร์ Debian
บทบาทนี้ช่วยให้คุณสามารถปรับใช้และจัดการการติดตั้ง PVE แบบโหนดเดียวและคลัสเตอร์ PVE (3+ โหนด) บน Debian Buster (10) และ Bullseye (11) และหนอนหนังสือ (12) คุณสามารถกำหนดค่าต่อไปนี้ด้วยความช่วยเหลือของบทบาทนี้:
datacenter.cfg
pve-no-subscription
หรือ pve-enterprise
)เมื่อเปิดใช้งานการจัดกลุ่มบทบาทนี้ (หรืออนุญาตให้คุณทำ) ต่อไปนี้:
สำหรับการสนับสนุนหรือหากคุณต้องการมีส่วนร่วมในบทบาทนี้ แต่ต้องการคำแนะนำโปรดเข้าร่วมเซิร์ฟเวอร์ Discord นี้: https://discord.gg/cjqr6fg โปรดทราบว่านี่เป็นคำเชิญชั่วคราวดังนั้นคุณจะต้องรอ @Lae เพื่อกำหนดบทบาทให้คุณมิฉะนั้น Discord จะลบคุณออกจากเซิร์ฟเวอร์เมื่อคุณออกจากระบบ
เป้าหมายหลักสำหรับบทบาทนี้คือการกำหนดค่าและจัดการคลัสเตอร์ proxmox ve (ดูตัวอย่าง playbook) อย่างไรก็ตามบทบาทนี้สามารถใช้ในการติดตั้งเซิร์ฟเวอร์ ProxMox โหนดเดียวได้อย่างรวดเร็ว
ฉันสมมติว่าคุณติดตั้ง Ansible แล้ว คุณจะต้องใช้เครื่องภายนอกกับเครื่องที่คุณกำลังติดตั้ง ProxMox บน (ส่วนใหญ่เป็นเพราะการรีบูตในช่วงกลางของการติดตั้งแม้ว่าฉันอาจจัดการสิ่งนี้ค่อนข้างแตกต่างกันสำหรับกรณีการใช้งานนี้ในภายหลัง)
คัดลอก playbook ต่อไปนี้ไปยังไฟล์เช่น install_proxmox.yml
:
- hosts: all
become: True
roles:
- role: geerlingguy.ntp
vars:
ntp_manage_config: true
ntp_servers:
- clock.sjc.he.net,
- clock.fmt.he.net,
- clock.nyc.he.net
- role: lae.proxmox
vars:
- pve_group: all
- pve_reboot_on_kernel_update: true
ติดตั้งบทบาทนี้และบทบาทในการกำหนดค่า NTP:
ansible-galaxy install lae.proxmox geerlingguy.ntp
ตอนนี้คุณสามารถทำการติดตั้ง:
ansible-playbook install_proxmox.yml -i $SSH_HOST_FQDN, -u $SSH_USER
หาก SSH_USER
ของคุณมีรหัสผ่าน sudo ให้ส่งธง -K
ไปยังคำสั่งด้านบน หากคุณตรวจสอบความถูกต้องของโฮสต์ผ่านรหัสผ่านแทน Pubkey Auth ให้ส่งธง -k
(ตรวจสอบให้แน่ใจว่าคุณติดตั้ง sshpass
ด้วย) คุณสามารถตั้งค่าตัวแปรเหล่านั้นก่อนที่จะเรียกใช้คำสั่งหรือเพียงแค่แทนที่ โปรดทราบว่าเครื่องหมายจุลภาคมีความสำคัญตามที่คาดว่าจะมีรายการ (มิฉะนั้นจะพยายามค้นหาไฟล์ที่มีรายการโฮสต์)
เมื่อเสร็จสมบูรณ์แล้วคุณควรจะสามารถเข้าถึงอินสแตนซ์ ProxMox VE ของคุณได้ที่ https://$SSH_HOST_FQDN:8006
สร้างไดเรกทอรี playbook ใหม่ เราเรียก lab-cluster
ของเรา ในที่สุด playbook ของเราจะมีลักษณะเช่นนี้ แต่คุณไม่จำเป็นต้องทำตามขั้นตอนทั้งหมด:
lab-cluster/
├── files
│ └── pve01
│ ├── lab-node01.local.key
│ ├── lab-node01.local.pem
│ ├── lab-node02.local.key
│ ├── lab-node02.local.pem
│ ├── lab-node03.local.key
│ └── lab-node03.local.pem
├── group_vars
│ ├── all
│ └── pve01
├── inventory
├── roles
│ └── requirements.yml
├── site.yml
└── templates
└── interfaces-pve01.j2
6 directories, 12 files
สิ่งแรกที่คุณอาจทราบคือเรามีไฟล์ .key
และ .pem
นี่คือคีย์ส่วนตัวและใบรับรอง SSL ว่าบทบาทนี้จะใช้ในการกำหนดค่าเว็บอินเตอร์เฟสสำหรับ ProxMox ในทุกโหนด อย่างไรก็ตามสิ่งเหล่านี้ไม่จำเป็นหากคุณต้องการใช้ใบรับรองที่ลงนามโดย CA ที่ Proxmox ตั้งค่าภายใน โดยทั่วไปคุณอาจใช้ ansible vault เพื่อเข้ารหัสกุญแจส่วนตัวเช่น:
ansible-vault encrypt files/pve01/*.key
สิ่งนี้จะทำให้คุณต้องผ่านรหัสผ่าน Vault เมื่อเรียกใช้ playbook
ก่อนอื่นให้ระบุโฮสต์คลัสเตอร์ของเรา ไฟล์ inventory
ของเราอาจมีลักษณะเช่นนี้:
[pve01]
lab-node01.local
lab-node02.local
lab-node03.local
คุณอาจมีหลายกลุ่มดังนั้นจึงเป็นความคิดที่ดีที่จะมีกลุ่มหนึ่งสำหรับแต่ละคลัสเตอร์ ตอนนี้เรามาระบุข้อกำหนดบทบาทของเราใน roles/requirements.yml
:
---
- src: geerlingguy.ntp
- src: lae.proxmox
เราต้องการบทบาท NTP ในการกำหนดค่า NTP ดังนั้นเราจึงใช้บทบาทของ Jeff Geerling ในการทำเช่นนั้น คุณไม่จำเป็นต้องใช้มันหากคุณมีการกำหนดค่า NTP อยู่แล้วหรือมีวิธีการที่แตกต่างกันสำหรับการกำหนดค่า NTP
ตอนนี้เรามาระบุตัวแปรกลุ่มกันบ้าง ก่อนอื่นลองสร้าง group_vars/all
สำหรับการตั้งค่าตัวแปรที่เกี่ยวข้องกับ NTP:
---
ntp_manage_config: true
ntp_servers:
- lab-ntp01.local iburst
- lab-ntp02.local iburst
แน่นอนเปลี่ยนเซิร์ฟเวอร์ NTP เหล่านั้นด้วยที่คุณต้องการ
ตอนนี้สำหรับเนื้อของ playbook ของคุณตัวแปรกลุ่มของ pve01
สร้างไฟล์ group_vars/pve01
เพิ่มสิ่งต่อไปนี้และแก้ไขตามสภาพแวดล้อมของคุณ
---
pve_group: pve01
pve_watchdog: ipmi
pve_ssl_private_key: "{{ lookup('file', pve_group + '/' + inventory_hostname + '.key') }}"
pve_ssl_certificate: "{{ lookup('file', pve_group + '/' + inventory_hostname + '.pem') }}"
pve_cluster_enabled: yes
pve_groups:
- name: ops
comment: Operations Team
pve_users:
- name: admin1@pam
email: [email protected]
firstname: Admin
lastname: User 1
groups: [ "ops" ]
- name: admin2@pam
email: [email protected]
firstname: Admin
lastname: User 2
groups: [ "ops" ]
pve_acls:
- path: /
roles: [ "Administrator" ]
groups: [ "ops" ]
pve_storages:
- name: localdir
type: dir
content: [ "images", "iso", "backup" ]
path: /plop
maxfiles: 4
pve_ssh_port: 22
interfaces_template: "interfaces-{{ pve_group }}.j2"
pve_group
ถูกตั้งค่าเป็นชื่อกลุ่มของคลัสเตอร์ของเรา pve01
- มันจะถูกใช้เพื่อจุดประสงค์ในการรับรองโฮสต์ทั้งหมดภายในกลุ่มนั้นสามารถเชื่อมต่อซึ่งกันและกันและจัดกลุ่มเข้าด้วยกัน โปรดทราบว่าชื่อคลัสเตอร์ PVE จะถูกตั้งค่าเป็นชื่อกลุ่มนี้เช่นกันเว้นแต่จะระบุไว้เป็นอย่างอื่นโดย pve_cluster_clustername
การออกจากสิ่งนี้ไม่ได้กำหนดจะเป็นค่าเริ่มต้นเป็น proxmox
pve_watchdog
ที่นี่เปิดใช้งานการสนับสนุน IPMI Watchdog และกำหนดค่าผู้จัดการ HA ของ PVE เพื่อใช้งาน ใช้ None
หรือปล่อยให้สิ่งนี้ไม่ได้กำหนดไว้เพื่อใช้ Watchdog ซอฟต์แวร์ ProxMox เริ่มต้น หากตั้งค่าเป็นอย่างอื่นค่าคาดว่าจะเป็นโมดูลเคอร์เนลสุนัขเฝ้าบ้าน
pve_ssl_private_key
และ pve_ssl_certificate
ชี้ไปที่ใบรับรอง SSL สำหรับ PVECLUSTER ที่นี่การค้นหาไฟล์ใช้เพื่ออ่านเนื้อหาของไฟล์ใน playbook เช่น files/pve01/lab-node01.key
คุณอาจใช้ตัวแปรโฮสต์แทนไฟล์หากคุณต้องการ
pve_cluster_enabled
เปิดใช้งานบทบาทในการทำงานการจัดการคลัสเตอร์ทั้งหมด ซึ่งรวมถึงการสร้างคลัสเตอร์หากไม่มีอยู่หรือเพิ่มโหนดลงในคลัสเตอร์ที่มีอยู่ มีการตรวจสอบเพื่อให้แน่ใจว่าคุณไม่ได้ผสมโหนดที่อยู่ในกลุ่มที่มีอยู่แล้วด้วยชื่อที่แตกต่างกัน
pve_groups
, pve_users
และ pve_acls
อนุญาตให้ผู้ใช้ UNIX บางคน (พวกเขาต้องมีอยู่แล้ว) เพื่อเข้าถึง PVE และให้บทบาทผู้ดูแลระบบเป็นส่วนหนึ่งของกลุ่ม ops
อ่านส่วน การจัดการผู้ใช้และ ACL สำหรับข้อมูลเพิ่มเติม
pve_storages
อนุญาตให้สร้างที่เก็บข้อมูลประเภทต่าง ๆ และกำหนดค่า แบ็กเอนด์จะต้องได้รับการสนับสนุนโดย proxmox อ่านส่วน การจัดการพื้นที่เก็บ ข้อมูลสำหรับข้อมูลเพิ่มเติม
pve_metric_servers
ช่วยให้คุณกำหนดค่าเซิร์ฟเวอร์เมตริกสำหรับคลัสเตอร์ PVE สิ่งนี้มีประโยชน์หากคุณต้องการใช้ influxDB, กราไฟท์หรืออื่น ๆ (พร้อมโทรเลข)
pve_ssh_port
ช่วยให้คุณเปลี่ยนพอร์ต SSH หาก SSH ของคุณกำลังฟังอยู่ในพอร์ตอื่นที่ไม่ใช่ค่าเริ่มต้น 22 โปรดตั้งค่าตัวแปรนี้ หากโหนดใหม่เข้าร่วมคลัสเตอร์คลัสเตอร์ PVE จำเป็นต้องสื่อสารหนึ่งครั้งผ่าน SSH
pve_manage_ssh
(ค่าเริ่มต้นจริง) อนุญาตให้คุณปิดใช้งานการเปลี่ยนแปลงใด ๆ ที่โมดูลนี้จะทำกับการกำหนดค่าเซิร์ฟเวอร์ SSH ของคุณ สิ่งนี้มีประโยชน์หากคุณใช้บทบาทอื่นในการจัดการเซิร์ฟเวอร์ SSH ของคุณ โปรดทราบว่าการตั้งค่านี้เป็นเท็จไม่ได้รับการสนับสนุนอย่างเป็นทางการคุณเองเพื่อทำซ้ำการเปลี่ยนแปลงที่เกิดขึ้นตามปกติใน ssh_cluster_config.yml
และ pve_add_node.yml
interfaces_template
ถูกตั้งค่าเป็นพา ธ ของเทมเพลตที่เราจะใช้สำหรับการกำหนดค่าเครือข่ายบนเครื่อง Debian เหล่านี้ สิ่งนี้จำเป็นก็ต่อเมื่อคุณต้องการจัดการเครือข่ายจาก Ansible มากกว่าด้วยตนเองหรือผ่านโฮสต์แต่ละแห่งใน PVE คุณควรคุ้นเคยกับ Ansible ก่อนที่จะทำเช่นนี้เนื่องจากวิธีการของคุณอาจเกี่ยวข้องกับการตั้งค่าตัวแปรโฮสต์สำหรับที่อยู่ IP สำหรับแต่ละโฮสต์ ฯลฯ
มารับเทมเพลตอินเทอร์เฟซนั้นกันเถอะ อย่าลังเลที่จะข้ามไฟล์นี้ (และปล่อยให้มันไม่ได้กำหนดไว้ใน group_vars/pve01
) มิฉะนั้น นี่คือสิ่งที่ฉันใช้:
# {{ ansible_managed }}
auto lo
iface lo inet loopback
allow-hotplug enp2s0f0
iface enp2s0f0 inet manual
auto vmbr0
iface vmbr0 inet static
address {{ lookup('dig', ansible_fqdn) }}
gateway 10.4.0.1
netmask 255.255.255.0
bridge_ports enp2s0f0
bridge_stp off
bridge_fd 0
allow-hotplug enp2s0f1
auto enp2s0f1
iface enp2s0f1 inet static
address {{ lookup('dig', ansible_hostname + "-clusternet.local") }}
netmask 255.255.255.0
คุณอาจไม่คุ้นเคยกับการค้นหา dig
แต่โดยทั่วไปที่นี่เรากำลังทำการค้นหาบันทึกสำหรับแต่ละเครื่อง (เช่น lab-node01.local) สำหรับอินเทอร์เฟซแรก (และการกำหนดค่าเป็นบริดจ์ที่เราจะใช้สำหรับอินเทอร์เฟซ VM ) จากนั้นการค้นหาที่แก้ไขอีกเล็กน้อยสำหรับเครือข่าย "การจัดกลุ่ม" ที่เราอาจใช้สำหรับ Ceph ("Lab-Node01-clusternet.local") แน่นอนว่าคุณอาจดูแตกต่างอย่างสิ้นเชิงโดยเฉพาะอย่างยิ่งหากคุณกำลังใช้พันธะเครือข่ายที่แตกต่างกันสามเครือข่ายสำหรับการจัดการ/corosync การจัดเก็บและการรับส่งข้อมูล VM ฯลฯ
สุดท้ายเรามาเขียน playbook ของเรากันเถอะ site.yml
จะมีลักษณะเช่นนี้:
---
- hosts: all
become: True
roles:
- geerlingguy.ntp
# Leave this out if you're not modifying networking through Ansible
- hosts: pve01
become: True
serial: 1
tasks:
- name: Install bridge-utils
apt:
name: bridge-utils
- name: Configure /etc/network/interfaces
template:
src: "{{ interfaces_template }}"
dest: /etc/network/interfaces
register: _configure_interfaces
- block:
- name: Reboot for networking changes
shell: "sleep 5 && shutdown -r now 'Networking changes found, rebooting'"
async: 1
poll: 0
- name: Wait for server to come back online
wait_for_connection:
delay: 15
when: _configure_interfaces is changed
- hosts: pve01
become: True
roles:
- lae.proxmox
โดยทั่วไปเราเรียกใช้บทบาท NTP ในโฮสต์ทั้งหมด (คุณอาจต้องการเพิ่มเครื่องจักรที่ไม่ใช่ Proxmox) กำหนดค่าเครือข่ายบน pve01
ด้วยเครือข่ายคลัสเตอร์และเค้าโครงบริดจ์แยกต่างหากรีบูตเพื่อให้การเปลี่ยนแปลงเหล่านั้นมีผล กับโฮสต์เพื่อตั้งค่าคลัสเตอร์
ณ จุดนี้ playbook ของเราพร้อมและเราสามารถเรียกใช้ playbook
ตรวจสอบให้แน่ใจว่ามีการติดตั้งบทบาทและการอ้างอิง:
ansible-galaxy install -r roles/requirements.yml --force
pip install jmespath dnspython
jmespath
เป็นสิ่งจำเป็นสำหรับงานบางอย่างที่เกี่ยวข้องกับการจัดกลุ่ม dnspython
เป็นสิ่งจำเป็นเฉพาะในกรณีที่คุณใช้การค้นหา dig
ซึ่งคุณอาจจะไม่เป็นถ้าคุณข้ามการกำหนดค่าเครือข่าย เราผ่าน --force
ให้ ansible-galaxy
ที่นี่เพื่อให้บทบาทได้รับการอัปเดตเป็นเวอร์ชันล่าสุดของพวกเขาหากติดตั้งแล้ว
ตอนนี้เรียกใช้ playbook:
ansible-playbook -i inventory site.yml -e '{"pve_reboot_on_kernel_update": true}'
-e '{"pve_reboot_on_kernel_update": true}'
ส่วนใหญ่จะเรียกใช้ในครั้งแรกที่คุณทำการตั้งค่าคลัสเตอร์ PROXMOX เนื่องจากจะรีบูตเซิร์ฟเวอร์เพื่อบูตเป็นเคอร์เนล PVE การรันที่ตามมาควรปล่อยให้สิ่งนี้ออกไปตามที่คุณต้องการรีบูตเซิร์ฟเวอร์ตามลำดับหลังจากคลัสเตอร์กำลังทำงานอยู่
ในการระบุผู้ใช้เฉพาะให้ใช้ -u root
(แทนที่ root
) และหากคุณต้องการให้รหัสผ่านให้ใช้ -k
สำหรับรหัสผ่าน SSH และ/หรือ -K
สำหรับรหัสผ่าน sudo ตัวอย่างเช่น:
ansible-playbook -i inventory site.yml -K -u admin1
สิ่งนี้จะขอรหัสผ่าน Sudo จากนั้นเข้าสู่ระบบผู้ใช้ admin1
(โดยใช้คีย์สาธารณะ Auth - Add -k
สำหรับ PW) และเรียกใช้ playbook
แค่ไหน! ตอนนี้คุณควรมีคลัสเตอร์ proxmox ที่ปรับใช้อย่างสมบูรณ์ คุณอาจต้องการสร้างพื้นที่เก็บข้อมูล Ceph ในภายหลัง (ดู Ceph สำหรับข้อมูลเพิ่มเติม) และงานอื่น ๆ ที่อาจเกิดขึ้น แต่ส่วนที่ยากส่วนใหญ่เสร็จสมบูรณ์
สิ่งนี้จะกำหนดค่าโฮสต์ในกลุ่ม pve01
เป็นคลัสเตอร์เดียวรวมถึงรีบูตเครื่องจักรหากเคอร์เนลได้รับการปรับปรุง (แนะนำให้ตั้งค่าสถานะนี้ในระหว่างการติดตั้ง - รีบูตระหว่างการดำเนินการควรเกิดขึ้นอย่างต่อเนื่องในช่วงระยะเวลาการบำรุงรักษา) นอกจากนี้ยังจะเปิดใช้งาน Watchdog IPMI
- hosts: pve01
become: True
roles:
- role: geerlingguy.ntp
ntp_manage_config: true
ntp_servers:
- clock.sjc.he.net,
- clock.fmt.he.net,
- clock.nyc.he.net
- role: lae.proxmox
pve_group: pve01
pve_cluster_enabled: yes
pve_reboot_on_kernel_update: true
pve_watchdog: ipmi
เกี่ยวกับค่าเริ่มต้น: ค่าเริ่มต้นบางส่วนถูกเลือกในเวลาทำงานและอาจแตกต่างจากตัวอย่างที่แสดงไว้ที่นี่
[variable]: [default] #[description/purpose]
pve_group: proxmox # host group that contains the Proxmox hosts to be clustered together
pve_repository_line: "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" # apt-repository configuration - change to enterprise if needed (although TODO further configuration may be needed)
pve_remove_subscription_warning: true # patches the subscription warning messages in proxmox if you are using the community edition
pve_extra_packages: [] # Any extra packages you may want to install, e.g. ngrep
pve_run_system_upgrades: false # Let role perform system upgrades
pve_run_proxmox_upgrades: true # Let role perform Proxmox VE upgrades
pve_check_for_kernel_update: true # Runs a script on the host to check kernel versions
pve_reboot_on_kernel_update: false # If set to true, will automatically reboot the machine on kernel updates
pve_reboot_on_kernel_update_delay: 60 # Number of seconds to wait before and after a reboot process to proceed with next task in cluster mode
pve_remove_old_kernels: true # Currently removes kernel from main Debian repository
# pve_default_kernel_version: # version to pin proxmox-default-kernel to (see https://pve.proxmox.com/wiki/Roadmap#Kernel_6.8)
pve_pcie_passthrough_enabled: false # Set this to true to enable PCIe passthrough.
pve_iommu_passthrough_mode: false # Set this to true to allow VMs to bypass the DMA translation. This might increase performance for IOMMU passthrough.
pve_iommu_unsafe_interrupts: false # Set this to true if your system doesn't support interrupt remapping.
pve_mediated_devices_enabled: false # Set this to true if your device supports gtv-g and you wish to enable split functionality.
pve_pcie_ovmf_enabled: false # Set this to true to enable GPU OVMF PCI passthrough.
pve_pci_device_ids: [] # List of pci device ID's (see https://pve.proxmox.com/wiki/Pci_passthrough#GPU_Passthrough).
pve_vfio_blacklist_drivers: [] # List of device drivers to blacklist from the Proxmox host (see https://pve.proxmox.com/wiki/PCI(e)_Passthrough).
pve_pcie_ignore_msrs: false # Set this to true if passing through to Windows machine to prevent VM crashing.
pve_pcie_report_msrs: true # Set this to false to prevent dmesg system from logging msrs crash reports.
pve_watchdog: none # Set this to "ipmi" if you want to configure a hardware watchdog. Proxmox uses a software watchdog (nmi_watchdog) by default.
pve_watchdog_ipmi_action: power_cycle # Can be one of "reset", "power_cycle", and "power_off".
pve_watchdog_ipmi_timeout: 10 # Number of seconds the watchdog should wait
pve_zfs_enabled: no # Specifies whether or not to install and configure ZFS packages
# pve_zfs_options: "" # modprobe parameters to pass to zfs module on boot/modprobe
# pve_zfs_zed_email: "" # Should be set to an email to receive ZFS notifications
pve_zfs_create_volumes: [] # List of ZFS Volumes to create (to use as PVE Storages). See section on Storage Management.
pve_ceph_enabled: false # Specifies wheter or not to install and configure Ceph packages. See below for an example configuration.
pve_ceph_repository_line: "deb http://download.proxmox.com/debian/ceph-pacific bookworm main" # apt-repository configuration. Will be automatically set for 6.x and 7.x (Further information: https://pve.proxmox.com/wiki/Package_Repositories)
pve_ceph_network: "{{ (ansible_default_ipv4.network +'/'+ ansible_default_ipv4.netmask) | ansible.utils.ipaddr('net') }}" # Ceph public network
# pve_ceph_cluster_network: "" # Optional, if the ceph cluster network is different from the public network (see https://pve.proxmox.com/pve-docs/chapter-pveceph.html#pve_ceph_install_wizard)
pve_ceph_nodes: "{{ pve_group }}" # Host group containing all Ceph nodes
pve_ceph_mon_group: "{{ pve_group }}" # Host group containing all Ceph monitor hosts
pve_ceph_mgr_group: "{{ pve_ceph_mon_group }}" # Host group containing all Ceph manager hosts
pve_ceph_mds_group: "{{ pve_group }}" # Host group containing all Ceph metadata server hosts
pve_ceph_osds: [] # List of OSD disks
pve_ceph_pools: [] # List of pools to create
pve_ceph_fs: [] # List of CephFS filesystems to create
pve_ceph_crush_rules: [] # List of CRUSH rules to create
# pve_ssl_private_key: "" # Should be set to the contents of the private key to use for HTTPS
# pve_ssl_certificate: "" # Should be set to the contents of the certificate to use for HTTPS
pve_roles: [] # Added more roles with specific privileges. See section on User Management.
pve_groups: [] # List of group definitions to manage in PVE. See section on User Management.
pve_users: [] # List of user definitions to manage in PVE. See section on User Management.
pve_storages: [] # List of storages to manage in PVE. See section on Storage Management.
pve_metric_servers: [] # List of metric servers to configure in PVE.
pve_datacenter_cfg: {} # Dictionary to configure the PVE datacenter.cfg config file.
pve_domains_cfg: [] # List of realms to use as authentication sources in the PVE domains.cfg config file.
pve_no_log: false # Set this to true in production to prevent leaking of storage credentials in run logs. (may be used in other tasks in the future)
ในการเปิดใช้งานการจัดกลุ่มด้วยบทบาทนี้กำหนดค่าตัวแปรต่อไปนี้อย่างเหมาะสม:
pve_cluster_enabled: no # Set this to yes to configure hosts to be clustered together
pve_cluster_clustername: "{{ pve_group }}" # Should be set to the name of the PVE cluster
pve_manage_hosts_enabled : yes # Set this to no to NOT configure hosts file (case of using vpn and hosts file is already configured)
ตัวแปรต่อไปนี้ใช้เพื่อให้ข้อมูลเครือข่ายแก่ Corosync สิ่งเหล่านี้เรียกว่า ring0_addr/ring1_addr หรือ link0_addr/link1_addr ขึ้นอยู่กับรุ่น PVE ควรเป็นที่อยู่ IPv4 หรือ IPv6 นอกจากนี้คุณยังสามารถกำหนดค่าลำดับความสำคัญของอินเทอร์เฟซเหล่านี้เพื่อบอกใบ้ถึง Corosync ซึ่งอินเทอร์เฟซควรจัดการกับทราฟฟิกของคลัสเตอร์ (ตัวเลขที่ต่ำกว่าบ่งบอกถึงลำดับความสำคัญที่สูงกว่า) สำหรับข้อมูลเพิ่มเติมโปรดดูบท Manager Cluster ในเอกสาร PVE
# pve_cluster_addr0: "{{ defaults to the default interface ipv4 or ipv6 if detected }}"
# pve_cluster_addr1: "another interface's IP address or hostname"
# pve_cluster_addr0_priority: 255
# pve_cluster_addr1_priority: 0
คุณสามารถตั้งค่าตัวเลือกในไฟล์กำหนดค่า datacenter.cfg:
pve_datacenter_cfg:
keyboard: en-us
นอกจากนี้คุณยังสามารถกำหนดค่ากลุ่มผู้จัดการ HA:
pve_cluster_ha_groups: [] # List of HA groups to create in PVE.
ตัวอย่างนี้สร้างกลุ่ม "lab_node01" สำหรับทรัพยากรที่กำหนดให้กับโฮสต์ Lab-Node01:
pve_cluster_ha_groups:
- name: lab_node01
comment: "My HA group"
nodes: "lab-node01"
nofailback: 0
restricted: 0
ตัวเลือกการกำหนดค่าทั้งหมดที่รองรับในไฟล์ datacenter.cfg ได้รับการบันทึกไว้ในส่วน ProxMox Manual Datacenter.cfg
เพื่อให้การโหลดซ้ำของอินเทอร์เฟซเครือข่ายทำงานผ่าน PVE Web UI คุณต้องติดตั้งแพ็คเกจ ifupdown2
โปรดทราบว่าสิ่งนี้จะลบ ifupdown
คุณสามารถระบุสิ่งนี้ได้โดยใช้ตัวแปรบทบาท pve_extra_packages
คุณสามารถตั้งค่าอาณาจักร / โดเมนเป็นแหล่งตรวจสอบความถูกต้องในไฟล์กำหนดค่า domains.cfg
หากไฟล์นี้ไม่มีอยู่จะมีเฉพาะอาณาจักร Linux PAM
และ Proxmox VE authentication server
เท่านั้น ประเภทที่รองรับคือ pam
, pve
, ad
และ ldap
เป็นไปได้ที่จะซิงค์ผู้ใช้และกลุ่มโดยอัตโนมัติสำหรับอาณาจักรที่ใช้ LDAP (LDAP & Microsoft Active Directory) ด้วย sync: true
อาณาจักรหนึ่งควรมีคุณสมบัติ default: 1
คุณสมบัติเพื่อทำเครื่องหมายเป็นค่าเริ่มต้น:
pve_domains_cfg:
- name: pam
type: pam
attributes:
comment: Linux PAM standard authentication
- name: pve
type: pve
attributes:
comment: Proxmox VE authentication server
- name: ad
type: ad
attributes:
comment: Active Directory authentication
domain: yourdomain.com
server1: dc01.yourdomain.com
default: 1
secure: 1
server2: dc02.yourdomain.com
- name: ldap
type: ldap
sync: true
attributes:
comment: LDAP authentication
base_dn: CN=Users,dc=yourdomain,dc=com
bind_dn: "uid=svc-reader,CN=Users,dc=yourdomain,dc=com"
bind_password: "{{ secret_ldap_svc_reader_password }}"
server1: ldap1.yourdomain.com
user_attr: uid
secure: 1
server2: ldap2.yourdomain.com
บทบาทนี้ไม่ได้ติดตั้ง NTP ดังนั้นคุณควรกำหนดค่า NTP ด้วยตัวเองเช่นกับบทบาท geerlingguy.ntp
ตามที่แสดงในตัวอย่าง playbook
เมื่อเปิดใช้งานการจัดกลุ่มบทบาทนี้จะใช้ตัวกรอง json_query
ซึ่งต้องการให้ติดตั้งไลบรารี jmespath
บนโฮสต์ควบคุมของคุณ คุณสามารถ pip install jmespath
หรือติดตั้งผ่านตัวจัดการแพ็คเกจการกระจายของคุณเช่น apt-get install python-jmespath
คุณสามารถใช้บทบาทนี้เพื่อจัดการผู้ใช้และกลุ่มภายใน proxmox VE (ทั้งในการปรับใช้เซิร์ฟเวอร์เดียวและการปรับใช้คลัสเตอร์) นี่คือตัวอย่างบางส่วน
pve_groups:
- name: Admins
comment: Administrators of this PVE cluster
- name: api_users
- name: test_users
pve_users:
- name: root@pam
email: [email protected]
- name: lae@pam
email: [email protected]
firstname: Musee
lastname: Ullah
groups: [ "Admins" ]
- name: pveapi@pve
password: "Proxmox789"
groups:
- api_users
- name: testapi@pve
password: "Test456"
enable: no
groups:
- api_users
- test_users
- name: tempuser@pam
expire: 1514793600
groups: [ "test_users" ]
comment: "Temporary user set to expire on 2018年 1月 1日 月曜日 00:00:00 PST"
email: [email protected]
firstname: Test
lastname: User
อ้างถึง library/proxmox_user.py
ลิงค์และ library/proxmox_group.py
ลิงค์สำหรับเอกสารโมดูล
สำหรับการจัดการบทบาทและ ACLs มีการใช้โมดูลที่คล้ายกัน แต่ความแตกต่างหลักคือพารามิเตอร์ส่วนใหญ่ยอมรับรายการเท่านั้น (อาจมีการเปลี่ยนแปลง):
pve_roles:
- name: Monitoring
privileges:
- "Sys.Modify"
- "Sys.Audit"
- "Datastore.Audit"
- "VM.Monitor"
- "VM.Audit"
pve_acls:
- path: /
roles: [ "Administrator" ]
groups: [ "Admins" ]
- path: /pools/testpool
roles: [ "PVEAdmin" ]
users:
- pveapi@pve
groups:
- test_users
อ้างถึง library/proxmox_role.py
ลิงค์และ library/proxmox_acl.py
ลิงค์สำหรับเอกสารโมดูล
คุณสามารถใช้บทบาทนี้เพื่อจัดการการจัดเก็บภายใน proxmox VE (ทั้งในการปรับใช้เซิร์ฟเวอร์เดียวและการปรับใช้คลัสเตอร์) สำหรับตอนนี้ประเภทที่รองรับเพียงอย่างเดียวคือ dir
, rbd
, nfs
, cephfs
, lvm
, lvmthin
, zfspool
, btrfs
, cifs
และ pbs
นี่คือตัวอย่างบางส่วน
pve_storages:
- name: dir1
type: dir
content: [ "images", "iso", "backup" ]
path: /ploup
disable: no
maxfiles: 4
- name: ceph1
type: rbd
content: [ "images", "rootdir" ]
nodes: [ "lab-node01.local", "lab-node02.local" ]
username: admin
pool: rbd
krbd: yes
monhost:
- 10.0.0.1
- 10.0.0.2
- 10.0.0.3
- name: nfs1
type: nfs
content: [ "images", "iso" ]
server: 192.168.122.2
export: /data
- name: lvm1
type: lvm
content: [ "images", "rootdir" ]
vgname: vg1
- name: lvmthin1
type: lvmthin
content: [ "images", "rootdir" ]
vgname: vg2
thinpool: data
- name: cephfs1
type: cephfs
content: [ "snippets", "vztmpl", "iso" ]
nodes: [ "lab-node01.local", "lab-node02.local" ]
monhost:
- 10.0.0.1
- 10.0.0.2
- 10.0.0.3
- name: pbs1
type: pbs
content: [ "backup" ]
server: 192.168.122.2
username: user@pbs
password: PBSPassword1
datastore: main
namespace: Top/something # Optional
- name: zfs1
type: zfspool
content: [ "images", "rootdir" ]
pool: rpool/data
sparse: true
- name: btrfs1
type: btrfs
content: [ "images", "rootdir" ]
nodes: [ "lab-node01.local", "lab-node02.local" ]
path: /mnt/proxmox_storage
is_mountpoint: true
- name: cifs1
server: cifs-host.domain.tld
type: cifs
content: [ "snippets", "vztmpl", "iso" ]
share: sharename
subdir: /subdir
username: user
password: supersecurepass
domain: addomain.tld
อ้างถึง https://pve.proxmox.com/pve-docs/api-viewer/index.html สำหรับข้อมูลเพิ่มเติม
ปัจจุบันประเภท zfspool
สามารถใช้สำหรับ images
และเนื้อหา rootdir
เท่านั้น หากคุณต้องการจัดเก็บประเภทเนื้อหาอื่น ๆ ในปริมาณ ZFS คุณต้องระบุด้วยประเภท dir
, PATH /<POOL>/<VOLUME>
และเพิ่มรายการใน pve_zfs_create_volumes
ตัวอย่างนี้เพิ่มที่เก็บ iso
ในพูล ZFS:
pve_zfs_create_volumes:
- rpool/iso
pve_storages:
- name: iso
type: dir
path: /rpool/iso
content: [ "iso" ]
อ้างถึง library/proxmox_storage.py
ลิงค์สำหรับเอกสารโมดูล
ส่วนนี้สามารถใช้ความรักเพิ่มขึ้นเล็กน้อย หากคุณใช้บทบาทนี้อย่างแข็งขันในการจัดการ PVE Ceph Cluster ของคุณโปรดอย่าลังเลที่จะทำให้ส่วนนี้ได้อย่างละเอียดมากขึ้นและเปิดคำขอดึง! ดูปัญหา #68
การจัดการ PVE Ceph ที่มีบทบาทนี้เป็นการทดลอง ในขณะที่ผู้ใช้ได้ใช้บทบาทนี้อย่างประสบความสำเร็จในการปรับใช้ PVE CEPH แต่ก็ไม่ได้ทดสอบอย่างเต็มที่ใน CI (เนื่องจากขาดอุปกรณ์บล็อกที่ใช้งานได้เพื่อใช้เป็น OSDS ใน Travis CI) โปรดปรับใช้สภาพแวดล้อมการทดสอบด้วยการกำหนดค่าของคุณก่อน Prod และรายงานปัญหาใด ๆ หากคุณพบเจอ
บทบาทนี้สามารถกำหนดค่าระบบการจัดเก็บ Ceph บนโฮสต์ ProxMox ของคุณ คำจำกัดความต่อไปนี้แสดงการกำหนดค่าบางอย่างที่เป็นไปได้
pve_ceph_enabled: true
pve_ceph_network: '172.10.0.0/24'
pve_ceph_cluster_network: '172.10.1.0/24'
pve_ceph_nodes: "ceph_nodes"
pve_ceph_osds:
# OSD with everything on the same device
- device: /dev/sdc
# OSD with block.db/WAL on another device
- device: /dev/sdd
block.db: /dev/sdb1
# encrypted OSD with everything on the same device
- device: /dev/sdc
encrypted: true
# encrypted OSD with block.db/WAL on another device
- device: /dev/sdd
block.db: /dev/sdb1
encrypted: true
# Crush rules for different storage classes
# By default 'type' is set to host, you can find valid types at
# (https://docs.ceph.com/en/latest/rados/operations/crush-map/)
# listed under 'TYPES AND BUCKETS'
pve_ceph_crush_rules:
- name: replicated_rule
type: osd # This is an example of how you can override a pre-existing rule
- name: ssd
class: ssd
type: osd
min-size: 2
max-size: 8
- name: hdd
class: hdd
type: host
# 2 Ceph pools for VM disks which will also be defined as Proxmox storages
# Using different CRUSH rules
pve_ceph_pools:
- name: ssd
pgs: 128
rule: ssd
application: rbd
storage: true
# This Ceph pool uses custom size/replication values
- name: hdd
pgs: 32
rule: hdd
application: rbd
storage: true
size: 2
min-size: 1
# This Ceph pool uses custom autoscale mode : "off" | "on" | "warn"> (default = "warn")
- name: vm-storage
pgs: 128
rule: replicated_rule
application: rbd
autoscale_mode: "on"
storage: true
pve_ceph_fs:
# A CephFS filesystem not defined as a Proxmox storage
- name: backup
pgs: 64
rule: hdd
storage: false
mountpoint: /srv/proxmox/backup
pve_ceph_network
โดยค่าเริ่มต้นใช้ตัวกรอง ansible.utils.ipaddr
ซึ่งต้องการไลบรารี netaddr
ที่จะติดตั้งและใช้งานได้โดยคอนโทรลเลอร์ Ansible ของคุณ
pve_ceph_nodes
โดยค่าเริ่มต้นใช้ pve_group
พารามิเตอร์นี้อนุญาตให้ระบุโหนดที่ติดตั้ง CEPH (เช่นหากคุณไม่ต้องการติดตั้ง CEPH บนโหนดทั้งหมดของคุณ)
pve_ceph_osds
โดยค่าเริ่มต้นสร้างปริมาณ CEPH ที่ไม่ได้เข้ารหัส ในการใช้ปริมาตรที่เข้ารหัสพารามิเตอร์ encrypted
จะต้องตั้งค่าต่อไดรฟ์เป็น true
บทบาทนี้สามารถกำหนดค่าเพื่ออนุญาตให้อุปกรณ์ PCI ผ่านจากโฮสต์ ProxMox ไปยัง VMS คุณลักษณะนี้ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นเนื่องจากไม่ใช่เมนบอร์ดและซีพียูทั้งหมดที่รองรับคุณสมบัตินี้ ในการเปิดใช้งาน Passthrough อุปกรณ์ CPU จะต้องรองรับการจำลองเสมือนฮาร์ดแวร์ (VT-D สำหรับระบบที่ใช้ Intel และ AMD-V สำหรับระบบที่ใช้ AMD) อ้างถึงคู่มือของส่วนประกอบทั้งหมดเพื่อตรวจสอบว่าคุณลักษณะนี้รองรับหรือไม่ การตั้งชื่อการประชุมของวิลล์นั้นแตกต่างกันไป แต่มักจะเรียกว่า IOMMU, VT-D หรือ AMD-V
ด้วยการเปิดใช้งานคุณสมบัตินี้อุปกรณ์เฉพาะ (เช่นอุปกรณ์ GPU หรือ USB) สามารถส่งผ่านไปยัง VMS ได้ นอกเหนือจากอุปกรณ์เฉพาะอุปกรณ์รวมหลายอย่างเช่น Intel หรือ GPU แบบรวมของ AMD ยังสามารถส่งผ่านไปยัง VM ได้
อุปกรณ์บางอย่างสามารถใช้ประโยชน์จากการใช้งานที่เป็นสื่อกลาง อุปกรณ์สื่อกลางสามารถส่งผ่านไปยัง VM หลายตัวเพื่อแบ่งปันทรัพยากรในขณะที่ยังคงใช้งานได้โดยระบบโฮสต์ การแยกอุปกรณ์ไม่ได้รับการสนับสนุนเสมอไปและควรได้รับการตรวจสอบก่อนที่จะเปิดใช้งานเพื่อป้องกันข้อผิดพลาด อ้างถึงคู่มือของอุปกรณ์ที่คุณต้องการผ่านเพื่อตรวจสอบว่าอุปกรณ์นั้นมีความสามารถในการใช้งานสื่อกลางหรือไม่ (ปัจจุบันบทบาทนี้รองรับ GVT-G; SR-IOV ไม่ได้รับการสนับสนุนในปัจจุบันและจะต้องเปิดใช้งานด้วยตนเองหลังจากเสร็จสิ้นบทบาท)
ต่อไปนี้เป็นตัวอย่างการกำหนดค่าที่เปิดใช้งาน PCIE passthrough:
pve_pcie_passthrough_enabled : true
pve_iommu_passthrough_mode : true
pve_iommu_unsafe_interrupts : false
pve_mediated_devices_enabled : false
pve_pcie_ovmf_enabled : false
pve_pci_device_ids :
- id : " 10de:1381 "
- id : " 10de:0fbc "
pve_vfio_blacklist_drivers :
- name : " radeon "
- name : " nouveau "
- name : " nvidia "
pve_pcie_ignore_msrs : false
pve_pcie_report_msrs : true
ต้องใช้ pve_pcie_passthrough_enabled
เพื่อใช้ฟังก์ชั่น PCIE Passthrough ใด ๆ หากไม่มีการเปิดใช้งานนี้ฟิลด์ที่เกี่ยวข้องกับ PCIE อื่น ๆ ทั้งหมดจะไม่ได้ใช้
pve_iommu_passthrough_mode
การเปิดใช้งานโหมด IOMMU PASSTHROUGH อาจเพิ่มประสิทธิภาพของอุปกรณ์ ด้วยการเปิดใช้งานคุณสมบัตินี้จะช่วยให้ VMS สามารถข้ามการแปล DMA เริ่มต้นซึ่งโดยปกติจะดำเนินการโดยผู้มีชีวิตสูง แทน VMS ส่งคำขอ DMA โดยตรงไปยังฮาร์ดแวร์ IOMMU
ต้องเปิดใช้งาน pve_iommu_unsafe_interrupts
เพื่อให้สามารถส่งผ่าน PCI ได้หากระบบของคุณไม่รองรับการแมปขัดจังหวะ คุณสามารถตรวจสอบได้ว่าอุปกรณ์รองรับการแมปอินเตอร์รัปต์โดยใช้ dmesg | grep 'remapping'
หากคุณเห็นหนึ่งในบรรทัดต่อไปนี้:
จากนั้นรองรับการแมปขัดจังหวะระบบและคุณไม่จำเป็นต้องเปิดใช้งานการขัดจังหวะที่ไม่ปลอดภัย โปรดทราบว่าโดยการเปิดใช้งานค่านี้ระบบของคุณจะไม่เสถียร
pve_mediated_devices_enabled
เปิดใช้งานการสนับสนุน GVT-G สำหรับอุปกรณ์รวมเช่น Intel Igpu อุปกรณ์บางอย่างไม่รองรับ GVT-G ดังนั้นขอแนะนำให้ตรวจสอบกับอุปกรณ์เฉพาะของคุณล่วงหน้าเพื่อให้แน่ใจว่าได้รับอนุญาต
pve_pcie_ovmf_enabled
เปิดใช้งาน GPU OVMF PCI Passthrough เมื่อใช้ OVMF คุณควรเลือก 'OVMF' เป็นตัวเลือก BIOS สำหรับ VM แทน 'Seabios' ภายใน Proxmox การตั้งค่านี้จะพยายามยกเลิกอุปกรณ์จากอนุญาโตตุลาการ VGA หากเป็นไปได้
pve_pci_device_ids
เป็นรายการของอุปกรณ์และรหัสผู้ขายที่ต้องการส่งผ่านไปยัง VMS จากโฮสต์ ดูส่วน 'GPU Passthrough' บน Proxmox Wiki เพื่อค้นหาอุปกรณ์เฉพาะและ ID ของผู้ขายของคุณ เมื่อตั้งค่าค่านี้จะต้องระบุ 'ID' สำหรับแต่ละองค์ประกอบใหม่ในอาร์เรย์
pve_vfio_blacklist_drivers
เป็นรายการของไดรเวอร์ที่จะถูกยกเว้น/ขึ้นบัญชีดำจากโฮสต์ สิ่งนี้จำเป็นเมื่อผ่านอุปกรณ์ PCI เพื่อป้องกันไม่ให้โฮสต์ใช้อุปกรณ์ก่อนที่จะสามารถกำหนดให้กับ VM ได้ เมื่อตั้งค่าค่านี้จะต้องระบุ 'ชื่อ' สำหรับแต่ละองค์ประกอบใหม่ในอาร์เรย์
pve_pcie_ignore_msrs
ป้องกันแอพพลิเคชั่น Windows บางอย่างเช่น GeForce Experience, Passmark Performance Test และ Sisoftware Sandra จากการชน VM ค่านี้จะต้องใช้เฉพาะเมื่อผ่านอุปกรณ์ PCI ไปยังระบบที่ใช้ Windows
pve_pcie_report_msrs
สามารถใช้เพื่อเปิดใช้งานหรือปิดการใช้งานข้อความการบันทึกของคำเตือน MSRS หากคุณเห็นข้อความเตือนจำนวนมากในบันทึกระบบ 'DMESG' ของคุณค่านี้สามารถใช้เพื่อปิดคำเตือน MSRS
คุณสามารถกำหนดค่าเซิร์ฟเวอร์เมตริกใน proxmox VE โดยใช้ตัวแปรบทบาท pve_metric_servers
ด้านล่างเป็นตัวอย่างการกำหนดค่าสำหรับเซิร์ฟเวอร์ตัวชี้วัดประเภทต่าง ๆ :
pve_metric_servers :
- id : influxdb1
port : 8086
server : influxdb.example.com
type : influxdb
protocol : http
organization : myorg
bucket : mybucket
token : mytoken
timeout : 30
max_body_size : 25000000
verify_certificate : true
- id : graphite1
port : 2003
server : graphite.example.com
type : graphite
protocol : tcp
path : mygraphitepath
mtu : 1500
id
: (จำเป็น) ตัวระบุที่ไม่ซ้ำกันสำหรับเซิร์ฟเวอร์เมตริกport
: (ไม่บังคับ) พอร์ตของเซิร์ฟเวอร์เมตริก ค่าเริ่มต้นคือ 8089
server
: (จำเป็น) ชื่อ DNS หรือที่อยู่ IP ของเซิร์ฟเวอร์เมตริกtype
: (ไม่บังคับ) ประเภทของเซิร์ฟเวอร์เมตริก ค่าที่เป็นไปได้: influxdb
, graphite
ค่าเริ่มต้นคือ influxdb
protocol
: (ไม่บังคับ) โปรโตคอลที่ใช้ในการส่งตัวชี้วัด ค่าที่เป็นไปได้: udp
, tcp
, http
, https
ค่าเริ่มต้นคือ udp
disable
: (ไม่บังคับ) ปิดการใช้งานเซิร์ฟเวอร์เมตริก ค่าเริ่มต้นเป็น false
organization
: (ไม่บังคับ) ชื่อองค์กร มีเฉพาะสำหรับการ influxDB ด้วย HTTP V2 APIbucket
: (ไม่บังคับ) ชื่อถังสำหรับ InfluxDB มีประโยชน์เฉพาะกับ HTTP V2 API หรือเข้ากันได้token
: (ไม่บังคับ) การเข้าถึงโทเค็นการเข้าถึง ต้องใช้เฉพาะเมื่อใช้ HTTP V2 APIpath
: (ไม่บังคับ) เส้นทางรูทกราไฟท์ มีเฉพาะสำหรับกราไฟท์api_path_prefix
: (ไม่บังคับ) คำนำหน้า API PATH ที่แทรกระหว่าง <host>:<port>/
และ /api2/
มีประโยชน์หากบริการ INFLUXDB ทำงานอยู่เบื้องหลังพร็อกซีย้อนกลับ มีเฉพาะสำหรับการ influxDB ด้วย HTTP V2 APItimeout
: (ไม่บังคับ) หมดเวลาในไม่กี่วินาที มีให้เฉพาะสำหรับการ influxDB ด้วย HTTP V2 API หรือซ็อกเก็ต TCP กราไฟท์max_body_size
: (ไม่บังคับ) ขนาดร่างกายสูงสุดในไบต์ มีเฉพาะสำหรับการ influxDB ด้วย HTTP V2 API ค่าเริ่มต้นคือ 25000000
mtu
: (ไม่บังคับ) MTU สำหรับการส่งสัญญาณตัวชี้วัด UDPverify_certificate
: (ไม่บังคับ) ตรวจสอบใบรับรอง SSL มีเฉพาะสำหรับการ influxDB ด้วย https Proxmox 8.2 แนะนำ Linux 6.8 ซึ่งอาจทำให้เกิดปัญหาในการปรับใช้บางอย่าง ในการแก้ไขปัญหานี้คุณสามารถตรึงรุ่นเคอร์เนลที่ใช้กับ 6.5 โดยเพิ่มตัวแปรบทบาทต่อไปนี้:
pve_default_kernel_version : 1.0.1
สิ่งนี้สร้างพินบนแพ็คเกจ proxmox-default-kernel
ซึ่งเป็นวิธีการที่ PVE แนะนำ สามารถลบออกได้ในภายหลังโดยการยกเลิกตัวแปรบทบาทนี้
เพิ่มส่วนนี้ลงใน ansible.cfg
ของคุณ
[ssh_connection]
ssh_args = -o ServerAliveInterval=20
ปัญหาอ้างอิง
เมื่อพัฒนาคุณสมบัติใหม่หรือแก้ไขบางสิ่งในบทบาทนี้คุณสามารถทดสอบการเปลี่ยนแปลงของคุณโดยใช้ Vagrant (รองรับ libvirt เท่านั้นในปัจจุบัน) playbook สามารถพบได้ใน tests/vagrant
(ดังนั้นตรวจสอบให้แน่ใจว่าได้แก้ไขตัวแปรกลุ่มตามต้องการ) ตรวจสอบให้แน่ใจว่าได้ทดสอบการเปลี่ยนแปลงใด ๆ ใน Debian ทุกรุ่นที่รองรับ (อัปเดต Vagrantfile ในพื้นที่เพื่อใช้ debian/bookworm64
, debian/bullseye64
หรือ debian/buster64
) ก่อนที่จะส่ง PR
นอกจากนี้คุณยังสามารถระบุพร็อกซีแคช APT (เช่น apt-cacher-ng
และจะต้องทำงานบนพอร์ต 3142) ด้วยตัวแปรสภาพแวดล้อม APT_CACHE_HOST
เพื่อเพิ่มความเร็วในการดาวน์โหลดแพ็คเกจหากคุณมีการทำงานในสภาพแวดล้อมของคุณ Playbook Vagrant จะตรวจพบว่าพร็อกซีแคชมีให้บริการหรือไม่และใช้งานได้เฉพาะในกรณีที่สามารถเข้าถึงได้จากเครือข่ายของคุณดังนั้นคุณสามารถตั้งค่าตัวแปรนี้อย่างถาวรในสภาพแวดล้อมการพัฒนาของคุณหากคุณต้องการ
ตัวอย่างเช่นคุณสามารถเรียกใช้สิ่งต่อไปนี้เพื่อแสดง verbose/ง่ายต่อการอ่านเอาต์พุตใช้พร็อกซีแคชและให้ VM ทำงานทำงานหากคุณพบข้อผิดพลาด (เพื่อให้คุณสามารถแก้ไขปัญหาและ/หรือเรียกใช้ vagrant provision
หลังจากแก้ไข):
APT_CACHE_HOST=10.71.71.10 ANSIBLE_STDOUT_CALLBACK=debug vagrant up --no-destroy-on-error
Musee Ullah (@Lae, [email protected]) - นักพัฒนาหลัก
Fabien Brachere (@fbrachere) - การสนับสนุนการตั้งค่าการจัดเก็บข้อมูล
Gaudenz Steinlin (@gaundez) - การสนับสนุน Ceph ฯลฯ
Richard Scott (@zenntrix) - การสนับสนุน Ceph, การสนับสนุน PVE 7.x, ฯลฯ
Thoralf Rickert -Wendt (@trigert76) - การสนับสนุน PVE 6.x ฯลฯ
Engin Dumlu (@roadrunner)
Jonas Meurer (@mejo-)
ondrej flidr (@snipercze)
niko2 (@niko2)
Christian Aublet (@CaUBLET)
Gille Pietri (@gilou)
Michael Holasek (@mholasek)
Alexander Petermann (@lexxxel) - การสนับสนุน PVE 8.x ฯลฯ
Bruno Travouillon (@btravouillon) - การปรับปรุง UX
Tobias negd (@wu3rstle) - การสนับสนุน Ceph
pendagtp (@pendagtp) - การสนับสนุน Ceph
John Marion (@JmarionDev)
Foerkede (@foerkede) - รองรับการจัดเก็บ ZFS
Guiffo Joel (@Futuriste) - การสนับสนุนการกำหนดค่าพูล
ADAM DELO (@ol3d) - PCIE PASSTHROUGH สนับสนุน Antoine Thys (@Thystips) - Support Metric Servers
รายชื่อผู้สนับสนุนทั้งหมด