专栏名称: 院长技术
《院长技术》专注于DevOps技术栈研究,云原生、Istio,CICD、Docker、Prometheus、K8s、ServiceMesh、Jenkins、Linux、微服务、分布式存储、监控、日志收集、安全渗透、虚拟化等技术栈。
目录
相关文章推荐
新闻大连  ·  谁家大学这么好啊,大连的! ·  昨天  
新闻大连  ·  谁家大学这么好啊,大连的! ·  昨天  
兰州大学萃英在线  ·  一封想要祝你“一战成硕”的来信 ·  3 天前  
浙江大学  ·  浙大+宁波,如何唱好“双城记”? ·  昨天  
51好读  ›  专栏  ›  院长技术

使用Ansible批量创建KVM虚拟机-待完善版本

院长技术  · 公众号  ·  · 2024-11-06 23:43

正文

前置条件

  1. 安装KVM和Libvirt :确保KVM和Libvirt已在宿主机上安装和配置好。

  2. 安装Ansible :确保Ansible已安装在你用来管理虚拟机的机器上。

  3. 配置Libvirt连接 :你需要配置SSH密钥或其他安全策略,以便Ansible能够连接到Libvirt宿主机。

创建Ansible Playbook

下面是一个简单的Ansible playbook的示例,用于批量创建KVM虚拟机。

  1. 定义变量 :首先,创建一个用于定义虚拟机属性的变量文件,如 vars/vms.yml

    vms:
    - name: vm1
    memory: 2048
    vcpus: 2
    disk: 10G
    - name: vm2
    memory: 1024
    vcpus: 1
    disk: 5G
  2. 建立Playbook :编写playbook文件,如 create_vms.yml

    ---
    - name: Create KVM virtual machines
    hosts: kvm_hosts
    become: true
    vars_files:
    - vars/vms.yml

    tasks:
    - name: Ensure the virtual machines are defined
    community.libvirt.virt:
    name: "{{ item.name }}"
    state: running
    memory: "{{ item.memory }}"
    vcpus: "{{ item.vcpus }}"
    disks:
    - size: "{{ item.disk }}"
    networks:
    - name: default
    xml: /etc/libvirt/qemu/{{ item.name }}.xml
    loop: "{{ vms }}"
  3. Inventory配置 :配置 inventory 文件,该文件定义KVM宿主机。

    [kvm_hosts]
    your_kvm_host ansible_host=192.168.x.x
  4. 运行Playbook :通过下面的命令来运行Playbook。

    ansible-playbook -i inventory create_vms.yml

说明

  • community.libvirt.virt模块 :用于创建和管理KVM虚拟机。

  • 变量定义 :我们在 vars/vms.yml 中定义了每个虚拟机的属性,包括名字、内存大小、vCPU数量和磁盘大小。

  • 状态管理 state: running







请到「今天看啥」查看全文