Nutanix的Ansible模块

  • 2019年4月25日
  • 19回复
  • 7928意见

是否有人使用Ansable来自动执行Nutanix任务。有人可以分享一些例子吗?

19回复

Userlevel 1
徽章 +2
你好,

我正在使用Ansible来配置Prism设置。DNS,NTP,警报,代理,身份验证等。我将尝试清理所有特定数据,并将其发布在Nutanix Git或我自己的Git门户网站上。
徽章
@itguyadam- 我正在尝试使用Ansible在特定群集上列出VM-目前,我列出了所有VM,然后根据cluster_name进行过滤。

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

tia
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

- 名称:获取VMS列表
URI:
URL:“ {{api_url_v3}}/vms/list”
身体:
KIND:VM
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_proviseer

目前正在努力在Nutanix上配备K8S群集 - 一旦我对此感到满意,我将把它放在GitHub上。
Userlevel 1
徽章 +2

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

徽章

@itguyadam

- 感谢您的回复!
我最终想出了如何做(找不到有关过滤器的任何文档)

过滤器规格正在杀死我!感谢您分享这一点。一旦我知道上下文和语法,它就可以完美地工作。

徽章

伙计们,

是否可以使用Ansible自动化VM快照过程?

我想在维护活动之前/之后进行VM的快照,并在维护活动之前恢复相同的快照。

徽章

你好

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

也有创建VM的角色,并将磁盘添加到现有的VM中。

你好,

有人可以帮助低于要求吗?

如何使用Ansible删除Nutanix VM?

如果VM快照成功或Ansible失败,该如何获得?

在服用VM快照时,将VM放置在不同的Nutanix群集中,如果一个群集中不存在VM,请检查其他群集?

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

问候

拉吉

徽章

你好

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

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

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

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

你好,

感谢您的信息。您是否可以帮助您提供完整的Ansible Playbook以删除快照?我尝试了下面的事情似乎不起作用。

- 名称:删除vm快照{{invoctory_hostname}}
URI:
url:“ {{base_urlv2}}/{{vm_uuid}}”
方法:删除
用户:“ {{用户名}}”
密码:“ {{passwass}}”
身体:
snapshot_specs:
- uuid:“ {{{vm_uuid}}”
snapshot_name:“ {{invoctory_hostname}} _ test”
Body_Format:JSON
标题:
内容类型:应用程序/JSON
接受:应用程序/JSON
force_basic_auth:是的
validate_certs:否
status_code:201

是的,我们正在使用Prism控制台来管理主机/VM。我们将VM放置在不同的群集中,如果可以在一个群集中存在VM,则可以做出任何条件,然后搜索另一个。

问候

拉吉

徽章

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

嗨,弗雷德,

谢谢。它按预期工作。

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

是否有办法使情况下VM如果不存在一个棱镜,然后检查其他棱镜?面临的挑战是,我们通过不同的棱镜将VM放置在不同的集群中。

问候

拉吉

徽章

嗨,拉吉

似乎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-dates-and-times

- 名称:等待任务结束
URI:
url:'{{api_url_v2}}/tasks/{{task_uuid}}}'
方法:获取
validate_certs:false
force_basic_auth:是的
url_username:“ {{prism_user}}”
url_password:“ {{{prism_password}}”
return_content:true
注册:task_status
delegate_to:localhost
重试:10
延迟:5
直到:task_status.json.progress_status ==“成功”

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

结果将是:

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

徽章

关于多个群集,由于我只能访问一个节点社区版群集,所以我不知道...

也许您可以使用“ get /vms /”,然后在簇上循环,直到找到VM。

你好弗雷德,,,,

感谢所有以前的帮助。

您能帮助以下问题吗?

- 在快照创建期间,有时会在采用一堆VM时面对以下问题?是否有超时或需要增加的东西?

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

- 在拍摄快照后,该条件正在失败(等待任务完成),但在先前的任务中取得了成功

{“ msg”:“条件检查'task_status.json.progress_status == \“成功\”'失败。对象'没有属性'json'}

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

- 我们以库存文件的形式传递了VM名称,但是对于库存名称和VM显示名称而言,很少有VM的快照失败是对病例敏感的吗?

问候

拉吉

回复


Learn more about our cookies.<\/a>","cookiepolicy.button":"Accept cookies","cookiepolicy.button.deny":"Deny all","cookiepolicy.link":"Cookie settings","cookiepolicy.modal.title":"Cookie settings","cookiepolicy.modal.content":"We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.<\/a>","cookiepolicy.modal.level1":"Basic
Functional","cookiepolicy.modal.level2":"Normal
Functional + analytics","cookiepolicy.modal.level3":"Complete
Functional + analytics + social media + embedded videos"}}}">
Baidu