Nutanix的Ansible模块


有人用Ansible自动化Nutanix任务吗?有人能分享一些例子吗?

19日回复

UserLevel 1.
徽章 +2
你好,

我正在用Ansible设置棱镜。DNS, NTP,警报,代理,认证,诸如此类。我将尝试清理我所有的特定数据,并发布到nutanix git,或我自己的git门户。
徽章
@itguyadam.-我正在尝试使用ansible列出特定集群上的虚拟机-目前,我列出所有的虚拟机,然后基于cluster_name过滤。

有没有更好的方法,我可以传递cluster_name作为过滤器,并只在特定的集群上获得虚拟机?

TIA.
UserLevel 1.
徽章 +2
@hfg_nutanix.我上传了一个ansible角色到git。我仍在处理一些任务,并准备发布,但所有内容的框架都已经存在了。

https://github.com/ad-code/automation/tree/master/ansible/nutanix_cluster_baseline.
UserLevel 1.
徽章 +2
@OkBeacon您目前使用的是什么命令?
徽章
@itguyadam.- 谢谢你的回复!
我最终弄清楚了如何做到这一点(找不到关于过滤器的任何文件)

代码:
-  Import_tasks:get_session_cookie.yml

- 名称:获取VMS列表
Uri:
URL:“{{api_url_v3}} / vms / list”
身体:
:虚拟机
sort_order:提升
抵消:0
长度:1000
sort_attribute:''
筛选器:"cluster_name=={{cluster_name}}"
方法:文章
validate_certs:不
body_format: json
status_code: 200
标题:
cookie:“{{session_cookie}}”

注册:vms_result
UserLevel 1.
徽章 +2
@OkBeacon我还发现了一些API文档有点缺少这样的区域。我最有可能窃取你的任务并在我正在努力的其他一些剧本中使用它。谢谢
徽章
我重用代码
https://github.com/mbach04/nutanix_vm_provisioner.

目前正在努力在Nutanix上配置K8S集群 - 我会在GitHub上放在GitHub上,我很满意。
UserLevel 1.
徽章 +2

我刚刚创造了一个ansible角色(https://galaxy.ansible.com/cybergavin/nutanix_vm_create.)用于使用不同图像和不同子网的批量创建VM。它还安装并启用NGT。

徽章

@itguyadam.

- 谢谢你的回复!
我最终弄清楚了如何做到这一点(找不到关于过滤器的任何文件)

过滤器规范简直要了我的命!谢谢你的分享。一旦我知道了上下文和语法,它就完美地工作了。

徽章

伙计们,

有可能自动化虚拟机快照过程与Ansible ?

我想取VM的快照,并在维护活动之前/之后还原相同。

徽章

我添加了一个ansible角色来拍摄VM的快照:https://github.com/fredouye/nutanix_ansible.

也有用于创建虚拟机、为已有虚拟机添加磁盘的角色。

你好,

有人可以帮助以下要求吗?

如何使用Assibe删除Nutanix VM?

使用ansible如何获取虚拟机快照成功或失败?

虚拟机被放置在不同的nutanix集群,而采取虚拟机快照,如何使条件,如果虚拟机不存在在一个集群,然后检查其他集群?

如何列出虚拟机快照与日期和可?

问候

拉吉

徽章

你可以很容易地使用Ansible来删除一个虚拟机,使用“delete /vms/{{uuid}}”API调用。

我的Ansible角色检查快照是否完成,如果有问题,任务将失败。

要列出快照,您可以使用“get / snapshots”API调用。

在获取快照时,您不需要指定集群,但我猜Prism必须管理所有主机。我刚接触Nutanix,如果我错了,请原谅我:)

你好,

感谢您的信息。您可以帮助提供完整的Ansible Playbook for Snapshot删除吗?我尝试过它的东西,似乎看起来不起作用。

—name: DELETE虚拟机快照{{inventory_hostname}}
Uri:
Url: "{{base_urlv2}}/{{vm_uuid}}"
方法:删除
用户:“{{username}}”
密码:“{{Password}}”
身体:
snapshot_specs:
—uuid:“{{vm_uuid}}”
snapshot_name:“{{inventory_hostname}} _ test”
body_format: json
标题:
内容类型:应用程序/ JSON
接受:application / json
force_basic_auth:是的
validate_certs:不
status_code: 201

是的,我们正在使用棱镜控制台来管理主机/虚拟机。我们有VM放置在不同的群集中,如果VM在一个群集中没有呈现任何条件,那么如果在一个群集中搜索其他情况,则会很大。

问候

拉吉

徽章

我添加到删除给定VM的所有快照的角色:https://github.com/fredouye/nutanix_ansible/tree/main/roles/vm_snapshots_remove.

嗨Fredouye,

谢谢。它按预期工作。

有没有办法获得人类可读格式的快照创建时间?默认情况下,它显示为epoch格式。

如果VM不存在于一个棱镜,那么是否有方法是检查其他棱镜?挑战是通过不同的棱镜在不同的群集中放置了VM。

问候

拉吉

徽章

嗨raj.

看起来Nutanix的API只返回以微秒为单位的日期:

“json”:{
“cluster_uuid”:“0005cec4-5d52-efbf-2bb0-00505698bc02”,
“完全_time_usecs”:1636384114684320,
“create_time_usecs”:1636384114376874

您可以使用Strfime过滤器将其转换为人类可读格式:https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html# handling-dates-and -times.

—name:等待任务结束
Uri:
Url: '{{api_url_v2}}/tasks/{{task_uuid}}'
方法:获取
validate_certs:false.
force_basic_auth:真
url_username:“{{prism_user}}”
URL_PASSWORD:“{{prism_password}}”
return_content:真
注册:task_status
delegate_to: localhost
重试:10
延迟:5
直到:task_status.json.progress_status ==“成功”

—name:以人类可读的格式显示快照创建时间
调试:
msg: "快照创建时间:{{'%Y-%m-%d %H:% m:%S' | strftime((task_status.json.create_time_usecs|string)[:10])}}"

结果将是:

任务(snap_nutanix:显示快照创建时间为人类可读的格式 ] **********************************************************************************
好的:[rhel7-1] => {
msg: "快照创建时间:2019-11-08 16:24:04"
}

徽章

关于多个群集,因为我只能访问单个节点社区版本集群,我不知道...

也许您可以使用“GET /vms/”,并在集群中循环,直到找到VM。

Fredouye.

谢谢你以前的所有帮助。

您能帮助解决以下问题吗?

在创建快照时,有时会遇到以下问题,而采取一堆虚拟机?是否有任何超时或需要增加的东西?

任务[获得VM的UUID] ***********************************************************************************************************************************************
2021年11月28日星期日23:27:21 +0800 (0:00:17.746)0:00:17.746 *******
致命:失败!=> {“已更改”:false,“内容”:“”,“已经过”:30,“msg”:“状态代码为-1,而不是[200]:连接失败:('读取操作超时',)“,”重定向“:false,”状态“:-1,”URL“:”}

—前一个任务快照成功,但快照成功后,有少数虚拟机快照失败(等待任务完成)

{“msg”:“条件检查'task_status.json.progress_status == \”成功“失败。错误是:评估条件的时出错(task_status.json.progress_status == \”成功“):'dict对象'没有属性'json'“}

—所提供的删除快照剧本运行良好,但它会删除所有与VM关联的快照。我们需要删除特定的快照?

- 我们通过清单文件的形式传递VM名称,但由于库存名称和VM显示名称,少量VM的快照失败区分大小写?

问候

拉吉

回复


Baidu