专辑:ansible学习笔记

外部传参

现在有一个playbook.yml文件,想要完成进入某个目录并完成部署任务,host和执行命令中的参数tag_name 需要外部传值

1
2
3
4
5
6
- hosts: '{{host}}'
tasks:
- name: deploy
shell: ./deploy_api.sh '{{tag_name}}'
args:
chdir: ~/path

通过 --extra-vars 或简写 -e 进行传值,现在可以通过三种方式进行传值:

  • key=value

    1
    ansible-playbook playbook.yml --extra-vars "host=xxx tag_name=xxx"
  • json格式

    1
    ansible-playbook playbook.yml --extra-vars "{'host':'xxx','tag_name':'xxx'}"
  • jaon文件

    1
    ansible-playbook playbook.yml --extra-vars "kwargs.json"

指定hosts文件

当多人协作开发项目的时候,都是全局/etc/ansible/hosts文件并不方便,我们可以通过传参 --inventory-file-i 来制定当前playbook使用的hosts文件

1
ansible-playbook playbook.yml --inventory-file=~/ansible-hosts

03-16 11:23