Ansible的k8s模块完全兼容OpenShift资源
Ansible 的 k8s 模块完全兼容 openshift 资源
安装
使用 k8s 模块需要安装 openshift 的 python 扩展
1 | $ pip install --ignore-installed openshift |
安装过程中报如下错误TypeError: find_packages() got an unexpected keyword argument include
需要升级 setuptools
1 | pip install -U setuptools |
在执行 k8s 命令的主机上登录 kubernetes/openshift 平台
1 | $ oc login https://master.example.com:8443 -u admin -p |
测试
使用 ansible k8s 模块创建 namespace
1 | oc -i hosts all -m k8s -a 'state=present name=testproject kind=Project' |
使用 ansible k8s 模块基于 dc.yaml 文件创建 dc
- 创建 dc.yaml 文件
1 | oc run nginx --image=nginx -n testproject --dry-run -o yaml |
将内容输入到 nginx-dc.yaml 文件中,去掉些默认值,添加 namespace
1 | $ cat nginx-dc.yaml |
- 使用 ansible 创建
1 | ansible -i hosts all -m k8s -a 'state=present src=/root/sample/nginx-dc.yaml' |
使用 ansible k8s 模块基于模板文件创建 dc
- 创建 playbook 文件
1 | --- |
- 使用 ansible-playbook 创建 nginx 应用
1 | ansible-playbook -i hosts playbook.yaml |
删除 nginx DeploymentConfig
1 | ansible -i hosts all -m k8s -a 'state=absent kind=DeploymentConfig namespace=testproject name=nginx' |
注意:
- k8s 插件不支持 kind: List。kind: List 并不是 K8S/OpenShift 中的资源对象,而是客户端将它解析为单独的资源对象
- k8s 插件不支持 definition 中使用
---
来创建多个资源对象。 - 使用 k8s 插件得一个个地创建资源对象,利用 Ansible 的 with_items。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Michael Blog!
评论