mbach04.nutanix_vm_provisioner

Nutanix 虚拟机配置器

一个基础的 Ansible 角色,用于通过 APIv3 在 Nutanix AHV 上配置虚拟机。

必需变量

api_version: "3.0"          # Nutanix 正在逐步淘汰 v2 API,最好使用可用的 v3
cluster_url: 172.16.1.100   # 通常用来登录 PRISM 的 IP 地址
prism_user: admin           # 有权限在集群上进行配置的账号
prism_password: secret      # 你账号的密码,请注意,应该使用 Ansible vault 加密,不要明文存储

cluster_name: "你的集群"          # 要配置的集群名称
subnet_name: "VMNet"              # 要添加虚拟机的子网 (vlan) 名称
image_name: "RHEL_Server_7.5"     # 要使用的磁盘镜像或 ISO 名称

# 定义你想创建的虚拟机的字典列表
# 注意,你可以将其拆分为几个独立的列表,并在调用角色时重写 vm_defs 来循环多个虚拟机集合。
vm_defs:
  - {vm_name: my-vm-01, vm_ip: '172.16.1.111', vm_ram: 8192, vm_num_cpu_per_socket: 1, vm_num_sockets: 1, vm_disk_list: [disk_size_mib: 152588]}

Cloud-init

如果你不想使用来宾自定义(在这种情况下是 cloud-init),那么请从 templates/vm-body.yml.j2 文件中删除 guest_customization 部分,或将其变量化并提交你的更改到此仓库。:-)

如果你希望使用带有 cloud-init 脚本的角色并设置用户密码,你可以这样做(但这不是最佳安全实践)。

在 RHEL 主机上使用以下命令生成一个 SHA-512 哈希密码,作为 cloud_init_root_pass 用于 kvm RHEL 镜像。

python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'

将生成的字符串设置为 group_vars/*/all.yaml 中的 cloud_init_root_pass

示例剧本

---
- name: 配置一些虚拟机
  hosts: localhost
  gather_facts: false
  vars:
    my_vms:
      - {vm_name: server1, vm_ip: '172.29.171.100', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
      - {vm_name: server2, vm_ip: '172.29.171.101', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
  tasks:
    - name:  Nutanix 上配置虚拟机
      include_role:
        name: nutanix_provisioner
      vars:
        vm_defs: "{{ my_vms }}"

许可证

根据 MIT 许可证授权。详见 LICENSE 文件。

作者信息

由 Red Hat 的 Matthew Bach 和 Timothy Ling 创建。

安装
ansible-galaxy install mbach04.nutanix_vm_provisioner
许可证
mit
下载
325
拥有者
Rusty Python and Golang hobbyist, Automation dude, Rick and Morty Fan