用于Nutanix的Ansible模块

  • 2019年4月25日
  • 19篇回复
  • 6884的浏览量

有没有人使用ASSIBE用于自动化Nutanix任务。请有人分享一些例子。

19篇回复

Userlevel 1
徽章 +2
你好,

我正在使用Ansible来配置棱镜设置。DNS,NTP,警报,代理,身份验证和类似的内容。我会尝试清理所有特定数据并在Nutanix Git或我自己的Git门户上发布它们。
徽章
@itguyadam- 我正在尝试使用Ansible - 目前在特定群集中列出VMS - 我正在列出所有VM,然后基于Cluster_name过滤。

是否有更好的方法可以将cluster_name传递为过滤器并仅在该特定群集上获取VM?

蒂雅
Userlevel 1
徽章 +2
@hfg_nutanix我已经向Git上传了一个匿名的角色。有几个任务我仍在努力并准备发布,但一切都在那里。

https://github.com/AD-Code/Automation/tree/master/ansible/nutanix_cluster_baseline
Userlevel 1
徽章 +2
@OKBEACON.您当前使用的命令是什么?
徽章
@itguyadam-谢谢回复!
我最终找到了怎么做(找不到任何关于过滤器的文档)

代码:
- import_tasks: get_session_cookie.yml

—name:获取VMS列表
uri:
Url: "{{api_url_v3}}/vms/list"
身体:
类:VM.
sort_order:升序
偏移:0
长度:1000
sort_attribute:“
过滤器:“cluster_name == {{cluster_name}}”
方法:帖子
validate_certs:no
body_format:json.
status_code:200
标题:
Cookie:“{{session_cookie}}”

注册:VMS_RESULT.
Userlevel 1
徽章 +2
@OKBEACON.我还发现一些API文档在这方面有些欠缺。我很可能会窃取你的任务,并把它用在我正在编写的其他剧本中。谢谢
徽章
我正在重用代码
https://github.com/mbach04/nutanix_vm_provisioner

目前工作在供应k8s集群上的nutanix -我将把它放在github上,一旦我满意它。
Userlevel 1
徽章 +2

我刚刚创建了一个ansible角色(https://galaxy.ansible.com/cybergavin/nutanix_vm_create),用于批量创建使用不同镜像、不同子网的虚拟机。它还安装并启用NGT。

徽章

@itguyadam

-谢谢回复!
我最终找到了怎么做(找不到任何关于过滤器的文档)

过滤器规格杀了我!感谢您分享这个。一旦我知道上下文和语法,它就完全运作。

徽章

人们,

是否有可能使用Ansible自动化VM快照流程?

我想采取VM的快照以及恢复相同的之前/之后的维护活动。

徽章

你好

我添加了一个Ansible角色,用于对虚拟机进行快照:https://github.com/Fredouye/nutanix_ansible

还有角色来创建VM,并将磁盘添加到现有VM。

你好,

有人能帮助低于要求的人吗?

如何使用ansible删除nutanix虚拟机?

如何获得VM快照成功或与Ansible失败?

如果VM不存在于一个群集中,则将VM Snapshot放置不同的Nutanix群集,然后在一个群集中呈现VM,然后检查其他群集吗?

如何列出VM快照以及日期Ansible?

问候

Raj.

徽章

你好

您可以使用“delete / vms / {{uuid}}”API调用轻松使用ASSibe来删除VM。

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

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

拍摄快照时,您无需指定群集,但我猜您的棱镜必须管理所有主机。我是Nutanix的新手,如果我错了,请原谅我:)

你好,

谢谢你提供的信息。Could you help to provide complete ansible playbook for snapshot removal? I tried it something like below doesn’t seems working.

- 名称:删除VM Snapshot {{Inventory_Hostname}}
uri:
URL:“{base_urlv2}} / {vm_uuid}}”
方法:删除
用户:“{{用户名}}”
密码:“{{password}}”
身体:
snapshot_specs:
- UUID:“{{vm_uuid}}”
Snapshot_name:“{{inventory_hostname}}_test”
body_format:json.
标题:
内容类型:application / json
接受:应用/ JSON
force_basic_auth:是的
validate_certs:no
status_code:201

是的,我们正在使用棱镜控制台来管理主机/虚拟机。我们将虚拟机放置在不同的集群中,如果有任何条件,如果虚拟机在一个集群中不存在,那么寻找其他集群,那就太好了。

问候

Raj.

徽章

我添加了一个角色,该角色删除给定虚拟机的所有快照:https://github.com/Fredouye/nutanix_ansible/tree/main/roles/vm_snapshots_remove

嗨Fredouye,

谢谢。我t’s working as expected.

是否有人以人类可读格式获取快照创建时间?默认情况下,它以epoch格式显示。

是否有办法使条件,如果虚拟机不存在于一个棱镜,然后检查其他棱镜?挑战在于,我们将vm置于不同的集群中,通过不同的棱镜进行管理。

问候

Raj.

徽章

你好,拉吉

似乎Qualanix的API只返回微秒内的日期:

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

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

- 名称:等到任务已经结束
uri:
URL:'{{API_URL_V2}} /任务/ {{task_uuid}}'
方法:
validate_certs:假
force_basic_auth:true
Url_username: "{{prism_user}}"
Url_password: "{{prism_password}}"
return_content:true
注册:Task_Status.
delogge_to:localhost.
重试:10
延迟:5
直到:task_status.json。progress_status = = "成功"

- 名称:将快照创建时间显示为人类可读格式
调试:
msg:“快照创建时间:{{'%y-%m - %d%h:%m:%s'| strftime((task_status.json.create_time_usecs |字符串)[:10])}}”

结果将是:

任务[snap_nutanix:显示人类可读格式的快照创建时间] **********************************************************************************
[rhel7-1] => {
“msg”:“快照创建时间:2021-11-08 16:24:04”

徽章

关于多个集群,因为我只能访问一个节点Community Edition集群,我不知道……

也许您可以使用“get / vms /”,并在找到VM之前循环循环。

你好Fredouye

感谢之前的帮助。

你可以帮助以下问题吗?

- 在服用束VM时有时面临以下问题的快照创建期间?是否需要增加任何时间?

任务(VM的UUID ] **********************************************************************************************************************************************
2011年11月28日星期日23:27:21 +0800(0:00:17.746)0:00:17.746 *******
致命:失败!=> {"changed": false, "content": "" ", "elapsed": 30, "msg": "Status code was -1 and not [200]: Connection failure:('The read operation timed out',)", "redirected": false, "Status ": -1, "url": ""}

- 在拍摄快照之后,条件失败(等待任务完成)在以前的任务中拍摄快照

{"msg": "条件检查'task_status.json。progress_status == \"Succeeded\"' failed. "当计算条件(task_status.json。progress_status == \"Succeeded\"): 'dict object'没有属性'json'"}

- 提供的删除快照播放簿运作良好,但它会删除与VM关联的所有快照.WE是否要求删除特定的快照?

-我们传递的虚拟机名称在库存文件的形式,但少数虚拟机的快照失败,因为库存名称和虚拟机显示名称是大小写敏感的?

问候

Raj.

回复


Baidu