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.kubernetesCopy 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-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd test1-operator
$ cd test1-operatorCopy 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: presentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在顶层目录中创建一个 Ansible
playbook playbook.yml文件,其中包含test1角色:- hosts: localhost roles: - test1- hosts: localhost roles: - test1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 playbook:
ansible-playbook playbook.yml
$ ansible-playbook playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否已创建命名空间:
oc get namespace
$ oc get namespaceCopy 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 3sCopy 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=absentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查是否已删除命名空间:
oc get namespace
$ oc get namespaceCopy 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 28dCopy to Clipboard Copied! Toggle word wrap Toggle overflow