当前位置: 首页 > news >正文

ansible的tags标签

1、tags模块

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

2、标签的类型

always:设定了标签名为always,除非指定跳过这个标签,否则该任务将始终会运行,即使指定了标签还会运行never:始终不运行的任务,指定标签名never可以运行debug:用于调试setup:收集主机的信息标签名也可以自定义:tags
vim test1.yaml- hosts: 192.168.230.20gather_facts: falsetasks:- name: debug-test1debug: msg: "cow"tags:- debug- name: always-test1debug:msg: "ALWAYS-RUN"tags:- always- name: setup-test1debug:msg: "SETUP-1"tags: - setup- name: never-test1debug: msg: "Never-run"tags:- never#不加标签运行,四个任务都会执行
ansible-playbook test1.yaml#从setup标签开始运行,会运行setup和always的任务内容 
ansible-playbook test1.yaml --tags=setup#运行never标签,always的标签也会运行
ansible-playbook test1.yaml --tags=never#跳过always不执行
ansible-playbook test1.yaml --skip-tags=always#运行多个标签
ansible-playbook test1.yaml --tags="debug","setup"

3、自定义标签

- hosts: 192.168.230.20remote_user: roottasks:- name: fuzhiwenjiancopy: src=/etc/hosts dest=/opt/hoststags:- zlm- name: touch filefile: path=/opt/test1.txt state=touchtags:- hpc#运行
ansible-playbook test2.yaml --tags=hpc  

4、模版

对应用的配置文件初始化

templates模版,Jinja组件,把编译过的模版文件传送给目标文件

cd /etc/httpd/conf
cp httpd.conf /opt/httpd.conf.j2
cd /optvim httpd.conf.j2
42行 Listen {{http_port}}
95行取消注释 SeverName {{server_name}}
119行 DocumentRoot "{{root_dir}}"vim /etc/ansible/hosts
192.168.230.20 http_port=192.168.230.20:80 server_name=www.xy.com:80 root_dir=/etc/httpd/htdocsvim test3.yaml- hosts: 192.168.230.20gather_facts: falseremote_user: rootvars:- pg: httpd- sv: httpdtasks:- name: install httpdyum: name={{pg}}- name: editon conftemplate: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.confnotify: - restart httpdhandlers:- name: restart httpdservice: name={{sv}} state=restarted#运行
ansible-playbook test3.yaml作业:nginx通过传参的方式,端口改成8080,servername:www.xy.com

5、roles模块

ansible为了层次化、结构化的组织playbook,使用roles(角色),通过层次化自动装载变量、任务和处理器等

roles把变量、任务和模块的文件单独放置在各个不同的文件中,通过roles一键编排

cd /etc//ansiblemkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -pyum -y install tree
treeroles:
├── httpd              角色名称 自定义
│   │   ├── defaults   存放配置文件的目录,可以不写
│   │   ├── files      存放copy模块或者script
│   │   ├── handlers   存放处理器文件的目录
│   │   ├── meta       保存角色元信息的文件
│   │   ├── tasks      保存任务的文件
│   │   ├── templates  保存模版的文件
│   │   └── vars       保存变量的文件
就是把原来写在一个yaml的配置,分开到不同的目录,保存在一个名字的yaml里面,执行的时候调用不同目录的同一个yaml文件
文件名:main.ymlcd httpd
cd tasks
vim main.yml
- name: install httpdyum: name={{pkg}}
- name: start apachservice: name={{svc}} enabled=true state=startedcd vars
vim main.yaml
pkg:httpd
svc:httpdcd /etc/ansible
vim site.yaml
- hosts: 192.168.230.30remote_user: rootroles:- httpd#运行
ansible-playbook site.yaml

http://www.mrgr.cn/news/12865.html

相关文章:

  • Kubernetes中的Kube-proxy:服务发现与负载均衡的基石
  • 一张图认识视频中间件
  • Verilog刷题笔记62
  • uniapp使用宫格实现多张图片预览
  • 网络,服务器
  • 在 Spring Boot 中为 MyBatis 添加拦截器
  • 【大数据】深入解析向量数据库Faiss:搭建与使用指南
  • 异步编程下await的理解
  • C++ 解决要编译的工程和依赖工程重名文件夹的问题
  • WHAT - Jamstack(JavaScript, APIs, and Markup 与 Serverless 无服务器架构)
  • 详解ACL限制SSH、Telnet远程登录及抓包实验
  • Java 入门指南:Java IO流 —— 转换流、扫描流、打印流
  • vTable实现多维表格
  • erlang学习:gen_server书上案例22.6练习题5
  • Obsidian dataview 高级使用技巧 【文件筛选/排序/分组/限制】
  • CSS3中display显示属性
  • 前后端交互的过程
  • 【生活英语】3、支持和鼓励
  • 弗洛伊德(Floyd)算法(C/C++)
  • CMake构建学习笔记9-Eigen库的构建