如何使用Ansible正确运行cmd kubectl apply



我正在尝试自动化以下操作:

  1. 应用物理卷
    • kubectl应用-f食品-pv.yaml
    • kubectl应用-f bar-pv.yaml
  2. 应用物理量声明
    • kubectl apply-f foo.yaml
    • kubectl应用-f bar.yaml
  3. 应用服务
    • kubectl应用-f this-service.yaml
    • kubectl应用-f that-nodeport.yaml
  4. 应用展开
    • kubectl应用-f something.yaml

现在我可以将cmds作为shell命令运行,但我认为这不是正确的方法。我一直在阅读Ansible文档,但我不知道我需要做什么。有没有更好的方法可以在不使用一系列shell cmd的情况下应用这些yaml文件?

提前感谢

最好的方法是使用ansible kubernetes.core collection

文件示例:

- name: Create a Deployment by reading the definition from a local file
kubernetes.core.k8s:
state: present
src: /testing/deployment.yml

因此,您可以使用state: present从包含对象的yaml定义的不同文件夹进行循环

我目前没有一个正在运行的kube集群来测试这一点,但您基本上应该能够使用kubernetes.core.k8s模块在一个循环的单个任务中运行所有这些

以下是我认为应该满足您要求的内容(前提是您对kube实例的访问权限已在您的环境中配置并正常,并且您已按照文档中的描述安装了上述集合(

- name: install my kube objects
hosts: localhost
gather_facts: false
vars:
obj_def_path: /path/to/your/obj_def_dir/
obj_def_list:
- food-pv.yaml
- bar-pv.yaml
- foo.yaml
- bar.yaml
- this-service.yaml
- that-nodeport.yaml
- something.yaml

tasks:
- name: Install all objects from def files
k8s:
src: "{{ obj_def_path }}/{{ item }}"
state: present
apply: true
loop: "{{ obj_def_list }}"

相关内容

  • 没有找到相关文章

最新更新