ansible的tags标签

打印 上一主题 下一主题

主题 1036|帖子 1036|积分 3108

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、tags模块

可以给任务定义标签,可以根据标签来运行指定的任务
2、标签的范例

  1. always:设定了标签名为always,除非指定跳过这个标签,否则该任务将始终会运行,即使指定了标签还会运行
  2. never:始终不运行的任务,指定标签名never可以运行
  3. debug:用于调试
  4. setup:收集主机的信息
  5. 标签名也可以自定义:tags
复制代码
  1. vim test1.yaml
  2. - hosts: 192.168.230.20
  3.   gather_facts: false
  4.   tasks:
  5.     - name: debug-test1
  6.       debug:
  7.         msg: "cow"
  8.       tags:
  9.         - debug
  10.         
  11.     - name: always-test1
  12.       debug:
  13.         msg: "ALWAYS-RUN"
  14.       tags:
  15.         - always
  16.         
  17.     - name: setup-test1
  18.       debug:
  19.         msg: "SETUP-1"
  20.       tags:
  21.         - setup
  22.         
  23.     - name: never-test1
  24.       debug:
  25.         msg: "Never-run"
  26.       tags:
  27.         - never
  28. #不加标签运行,四个任务都会执行
  29. ansible-playbook test1.yaml
  30. #从setup标签开始运行,会运行setup和always的任务内容
  31. ansible-playbook test1.yaml --tags=setup
  32. #运行never标签,always的标签也会运行
  33. ansible-playbook test1.yaml --tags=never
  34. #跳过always不执行
  35. ansible-playbook test1.yaml --skip-tags=always
  36. #运行多个标签
  37. ansible-playbook test1.yaml --tags="debug","setup"
复制代码
3、自定义标签

  1. - hosts: 192.168.230.20
  2.   remote_user: root
  3.   tasks:
  4.     - name: fuzhiwenjian
  5.       copy: src=/etc/hosts dest=/opt/hosts
  6.       tags:
  7.         - zlm
  8.     - name: touch file
  9.       file: path=/opt/test1.txt state=touch
  10.       tags:
  11.         - hpc
  12. #运行
  13. ansible-playbook test2.yaml --tags=hpc  
复制代码
4、模版

对应用的设置文件初始化
templates模版,Jinja组件,把编译过的模版文件传送给目的文件
  1. cd /etc/httpd/conf
  2. cp httpd.conf /opt/httpd.conf.j2
  3. cd /opt
  4. vim httpd.conf.j2
  5. 42行 Listen {{http_port}}
  6. 95行取消注释 SeverName {{server_name}}
  7. 119行 DocumentRoot "{{root_dir}}"
  8. vim /etc/ansible/hosts
  9. 192.168.230.20 http_port=192.168.230.20:80 server_name=www.xy.com:80 root_dir=/etc/httpd/htdocs
  10. vim test3.yaml
  11. - hosts: 192.168.230.20
  12.   gather_facts: false
  13.   remote_user: root
  14.   vars:
  15.     - pg: httpd
  16.     - sv: httpd
  17.   tasks:
  18.     - name: install httpd
  19.       yum: name={{pg}}
  20.     - name: editon conf
  21.       template: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
  22.       notify:
  23.         - restart httpd
  24.    handlers:
  25.      - name: restart httpd
  26.        service: name={{sv}} state=restarted
  27. #运行
  28. ansible-playbook test3.yaml
  29. 作业:nginx通过传参的方式,端口改成8080,servername:www.xy.com
复制代码
5、roles模块

ansible为了层次化、结构化的构造playbook,使用roles(角色),通过层次化自动装载变量、任务和处理器等
roles把变量、任务和模块的文件单独放置在各个差别的文件中,通过roles一键编排
  1. cd /etc//ansible
  2. mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
  3. mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
  4. mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
  5. yum -y install tree
  6. tree
  7. roles:
  8. ├── httpd              角色名称 自定义
  9. │   │   ├── defaults   存放配置文件的目录,可以不写
  10. │   │   ├── files      存放copy模块或者script
  11. │   │   ├── handlers   存放处理器文件的目录
  12. │   │   ├── meta       保存角色元信息的文件
  13. │   │   ├── tasks      保存任务的文件
  14. │   │   ├── templates  保存模版的文件
  15. │   │   └── vars       保存变量的文件
  16. 就是把原来写在一个yaml的配置,分开到不同的目录,保存在一个名字的yaml里面,执行的时候调用不同目录的同一个yaml文件
  17. 文件名:main.yml
  18. cd httpd
  19. cd tasks
  20. vim main.yml
  21. - name: install httpd
  22.   yum: name={{pkg}}
  23. - name: start apach
  24.   service: name={{svc}} enabled=true state=started
  25.   
  26. cd vars
  27. vim main.yaml
  28. pkg:httpd
  29. svc:httpd
  30. cd /etc/ansible
  31. vim site.yaml
  32. - hosts: 192.168.230.30
  33.   remote_user: root
  34.   roles:
  35.     - httpd
  36.    
  37. #运行
  38. ansible-playbook site.yaml
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表