This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.4.3.2. 在本地测试 k8s Ansible 模块
有时,开发人员最好在其本地机器上运行 Ansible 代码,而不必每次都运行和重构 Operator。
流程
安装
community.kubernetes
集合:ansible-galaxy collection install community.kubernetes
$ ansible-galaxy collection install community.kubernetes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 初始化基于 Ansible 的新 Operator 项目:
operator-sdk new --type ansible \ --kind Test1 \ --api-version test1.example.com/v1alpha1 test1-operator
$ operator-sdk new --type ansible \ --kind Test1 \ --api-version test1.example.com/v1alpha1 test1-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd test1-operator
$ cd test1-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您想要的 Ansible 逻辑来修改
roles/test1/tasks/main.yml
文件。本示例通过变量切换来创建和删除命名空间。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 设置
ignore_errors: true
可确保删除不存在的项目不会失败。
修改
roles/test1/defaults/main.yml
文件,将默认state
设置为present
:state: present
state: present
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在顶层目录中创建一个 Ansible
playbook playbook.yml
文件,其中包含test1
角色:- hosts: localhost roles: - test1
- hosts: localhost roles: - test1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 playbook:
ansible-playbook playbook.yml
$ ansible-playbook playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否已创建命名空间:
oc get namespace
$ oc get namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS AGE default Active 28d kube-public Active 28d kube-system Active 28d test Active 3s
NAME STATUS AGE default Active 28d kube-public Active 28d kube-system Active 28d test Active 3s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新运行 playbook,设置
state
为absent
:ansible-playbook playbook.yml --extra-vars state=absent
$ ansible-playbook playbook.yml --extra-vars state=absent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否已删除命名空间:
oc get namespace
$ oc get namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS AGE default Active 28d kube-public Active 28d kube-system Active 28d
NAME STATUS AGE default Active 28d kube-public Active 28d kube-system Active 28d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow