Bobcares

Ansible Proxmox Create VM | Guide

by | Jul 1, 2023

Learn how to use Ansible to create a VM on Proxmox. Our Proxmox Support team is here to help you with your questions and concerns.

Ansible Proxmox Create VM | Guide

Did you know that we can create a VM on a Proxmox server via Ansible with the Ansible module called “proxmox_kvm”?

Ansible Proxmox Create VM | Guide

Furthermore, this module lets us manage Proxmox virtual machines via Ansible playbooks. For instance, we can use Ansible to create a VM on Proxmox as seen below:

  1. First, we have to make sure Ansible is installed on the machine where we are running the playbook. If not, we can install Ansible with the package manager of our operating system.
  2. Then, we have to create a new playbook file and open it in a text editor.
  3. Next, it is time to start the playbook by specifying the host and the required variables. For instance:

    - name: Create a Proxmox VM
    hosts: proxmox
    gather_facts: false
    vars:
    proxmox_api_user: 'your_proxmox_username'
    proxmox_api_password: 'your_proxmox_password'
    proxmox_api_host: 'your_proxmox_host'
    proxmox_api_port: '8006'
    proxmox_vm_name: 'new_vm_name'
    proxmox_vm_template: 'template_name'
    proxmox_vm_node: 'proxmox_node_name'
    proxmox_vm_cores: 2
    proxmox_vm_memory: 4096
    proxmox_vm_disk_size: 20G

    We have to change the variables seen above as per our Proxmox setup. Additionally, verify that we have added the correct Proxmox API credentials. We also have to inlcude information like the desired VM name, template, target Proxmox node, CPU cores, memory size, and disk size.

  4. After that, we have to add the tasks to create the VM below the playbook structure. For instance:


    - name: Create Proxmox VM
    proxmox_kvm:
    api_user: "{{ proxmox_api_user }}"
    api_password: "{{ proxmox_api_password }}"
    api_host: "{{ proxmox_api_host }}"
    api_port: "{{ proxmox_api_port }}"
    vmid: 100 # ID for the new VM
    node: "{{ proxmox_vm_node }}"
    name: "{{ proxmox_vm_name }}"
    cores: "{{ proxmox_vm_cores }}"
    memory: "{{ proxmox_vm_memory }}"
    disks:
    - size: "{{ proxmox_vm_disk_size }}"
    storage: local-lvm # Storage pool for the disk
    template: "{{ proxmox_vm_template }}"
    state: present

    Here we have to enter the unique ID as the vmid for the new VM. Make sure the storage parameter is specified with the storage pool for the VM disk. The state parameter is set to present to ensure the VM is created.

  5. Now, we have to save and close the playbook file.
  6. Finally, run the playbook with this command:

    ansible-playbook create_vm.yml

  7. We have to make sure the Proxmox host mentioned in the playbook’s hosts field is reachable from the machine where we are running Ansible.

After the above steps, Ansible will connect to the Proxmox API and execute the tasks to create the VM according to the parameters we have added.

Let us know in the comments if you need further help with using Ansible to create a VM on Proxmox.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

In summary, our Support Techs demonstrated how to use Ansible to create a virtual machine on Proxmox.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

2 Comments

  1. Robin

    This code seems to not be working. Im getting a syntax error from “hosts: proxmox”

    Reply
    • Krishna Priya

      Hello Robin,
      Our experts are available to assist you with your concerns. We would be delighted to discuss this with you via our live chat feature. Simply click on the icon located in the bottom right corner to get started.

      Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF