我正在用Ansible设置棱镜。DNS, NTP,警报,代理,认证,诸如此类。我将尝试清理我所有的特定数据,并发布到nutanix git,或我自己的git门户。
有没有更好的方法,我可以传递cluster_name作为过滤器,并只在特定的集群上获得虚拟机?
蒂雅
https://github.com/AD-Code/Automation/tree/master/ansible/nutanix_cluster_baseline
我最终找到了怎么做(找不到任何关于过滤器的文档)
- import_tasks: get_session_cookie.yml
—name:获取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
https://github.com/mbach04/nutanix_vm_provisioner
目前工作在供应k8s集群上的nutanix -我将把它放在github上,一旦我满意它。
我刚刚创建了一个ansible角色(https://galaxy.ansible.com/cybergavin/nutanix_vm_create),用于批量创建使用不同镜像、不同子网的虚拟机。它还安装并启用NGT。
-谢谢回复!
我最终找到了怎么做(找不到任何关于过滤器的文档)
过滤器规范简直要了我的命!谢谢你的分享。一旦我知道了上下文和语法,它就完美地工作了。
伙计们,
有可能自动化虚拟机快照过程与Ansible ?
我想采取VM的快照以及恢复相同的之前/之后的维护活动。
你好,
有人能帮助低于要求的人吗?
如何使用ansible删除nutanix虚拟机?
使用ansible如何获取虚拟机快照成功或失败?
虚拟机被放置在不同的nutanix集群,而采取虚拟机快照,如何使条件,如果虚拟机不存在在一个集群,然后检查其他集群?
如何列出虚拟机快照与日期和可?
问候
拉吉
嗨
你可以很容易地使用Ansible来删除一个虚拟机,使用“delete /vms/{{uuid}}”API调用。
我的Ansible角色检查快照是否完成,如果有问题,任务将失败。
要列出快照,可以使用“GET /快照”API调用。
在获取快照时,您不需要指定集群,但我猜Prism必须管理所有主机。我刚接触Nutanix,如果我错了,请原谅我:)
你好,
谢谢你提供的信息。Could you help to provide complete ansible playbook for snapshot removal? I tried it something like below doesn’t seems working.
—name: DELETE虚拟机快照{{inventory_hostname}}
uri:
Url: "{{base_urlv2}}/{{vm_uuid}}"
方法:删除
用户:“{{用户名}}”
密码:“{{Password}}”
身体:
snapshot_specs:
—uuid:“{{vm_uuid}}”
Snapshot_name:“{{inventory_hostname}}_test”
body_format: json
标题:
内容类型:application / json
接受:application / json
force_basic_auth:是的
validate_certs:不
status_code: 201
是的,我们正在使用棱镜控制台来管理主机/虚拟机。我们将虚拟机放置在不同的集群中,如果有任何条件,如果虚拟机在一个集群中不存在,那么寻找其他集群,那就太好了。
问候
拉吉
我添加了一个角色,该角色删除给定虚拟机的所有快照:https://github.com/Fredouye/nutanix_ansible/tree/main/roles/vm_snapshots_remove
嗨Fredouye,
谢谢。我t’s working as expected.
有没有办法获得人类可读格式的快照创建时间?默认情况下,它显示为epoch格式。
是否有办法使条件,如果虚拟机不存在于一个棱镜,然后检查其他棱镜?挑战在于,我们将vm置于不同的集群中,通过不同的棱镜进行管理。
问候
拉吉
你好,拉吉
看起来Nutanix的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
—name:等待任务结束
uri:
Url: '{{api_url_v2}}/tasks/{{task_uuid}}'
方法:
validate_certs:假
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"
}
关于多个集群,因为我只能访问一个节点Community Edition集群,我不知道……
也许您可以使用“GET /vms/”,并在集群中循环,直到找到VM。
嗨Fredouye,
感谢之前的帮助。
您能帮助解决以下问题吗?
在创建快照时,有时会遇到以下问题,而采取一堆虚拟机?是否有任何超时或需要增加的东西?
任务(VM的UUID ] **********************************************************************************************************************************************
2021年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关联的快照。我们需要删除特定的快照?
-我们传递的虚拟机名称在库存文件的形式,但少数虚拟机的快照失败,因为库存名称和虚拟机显示名称是大小写敏感的?
问候
拉吉