首页 > 其他分享 >Ansible Jinja2 使用及示例

Ansible Jinja2 使用及示例

时间:2024-08-21 18:26:02浏览次数:7  
标签:示例 192.168 yaml Ansible Jinja2 mysqlconf template

目录

Jinja2

掌握了Jinja才是深入Ansible-playbook的开始

Jinja2 For循环

变量的提取使用 {{variable}}
{%statement execution%} 括起来的内容为Jinja2命令执行语句

{% for item in all_items %}
    {{ item }}
    {% endfor %}
#导入模块
from jinja2 import Template

#设置模板内容
template_content = ''' 
{% for id in range(201,211) %} 
192.168.37.{{ id }} web{{ "%02d"|format(id-200) }}.magedu
{% endfor %} 
''' 
# 创建模板对象 
template = Template(template_content)

# 渲染模板 
output = template.render()

# 打印模板
print(output)

Jinja2 If 条件

{% if my_conditional %}
       ...
    {% endif %}

编排目录结构

mysqlconf.yaml
roles/mysqlconf/
        ├── templates
        │ └── mycnf.j2
mkdir -p roles/mysqlconf/templates

只定义了Templates而没有定义Tasks,Ansible也支持这样的方式,只是mysqlconf这个role的功能不全而已,但不影响其正常使用

我们本次的Tasks调度配置在mysqlconf.yaml文件中

mysqlconf.yaml

- name : Mysql conf template
  hosts : ubuntu
  vars:
    PORT: 1331
  tasks:
   - template: 
      src: roles/mysqlconf/templates/mycnf.j2 
      dest: /etc/mycnf.conf.yaml

roles/mysqlconf/templates/mycnf.j2

{% if PORT %}
    bind-address=0.0.0.0:{{ PORT }}
{% else %}
    bind-address=0.0.0.0:3306
{% endif %}
ansible-playbook mysqlconf.yaml 

PLAY [Mysql conf template] ******

TASK [Gathering Facts] ******
ok: [192.168.255.110]

TASK [template] ******
changed: [192.168.255.110]

PLAY RECAP ******
192.168.255.110            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Jinja多值合并

{% for node in groups["db"] %}
    {{ node | join("") }}:5672
    {% if not loop.last %}
    {% endif %}
{% endfor %}

标签:示例,192.168,yaml,Ansible,Jinja2,mysqlconf,template
From: https://www.cnblogs.com/anyux/p/18372323

相关文章

  • stencil示例
    stencil是一个webcomponents开发框架。pnpmcreatestencilmy.counter.tsx:import{Component,h,Prop,State}from"@stencil/core";@Component({ tag:"my-counter", styleUrl:"my-counter.css", shadow:true,})exportclassMyCou......
  • lwc示例
    lwc是一个webcomponents开发工具。pnpmcreatelwr选择SPA。项目生成后,一些运行时包并不在package.json中,需手动安装。package.json:{"name":"lwrdemo","version":"0.0.1","license":"MIT","private":true,......
  • Ansible roles 动态变更
    目录role动态变更当Apache的配置文件发生变化时重启Apache进程编排roles目录结构编辑roles/apache/handlers/main.yaml编辑roles/apache/files/httpd.conf编辑roles/apache/tasks/restart.yaml编辑roles/apache/tasks/main.yaml编辑roles/apache.yamlroles文件传输role模板替换......
  • gpt给出的operator简单示例
    以下是一些有用的Operator的简单示例,这些示例展示了Operator的实际应用和功能。每个示例都是一个独立的Operator,用于处理特定的场景。1.NginxOperator功能管理Nginx实例的部署和配置。示例定义CRDapi/v1/nginx_types.go:typeNginxSpecstruct{Replicas......
  • python map/filter/reduce的用法示例
    fromfunctoolsimportreducedeffunc0(a):"""a:可迭代对象的迭代元素将function应用于可迭代对象的对应元素,并返回一个迭代器,其中包含了所有映射后的结果map(function,iterable,...)function:要应用于可迭代对象的函数。iterable:要进行映射......
  • ansible roles 示例
    目录role构建role编辑roles目录变量文件调用roletasksmain文件taskscreate_dir.yaml,git_checkout.yaml,static_git_pull.yaml文件roleAd-Hoc适用于临时命令的执行,Playbook合适中小项目,Roles适合大项目构建roleRoles主要依赖于目录的命名和摆放,默认tasks/main.yaml是......
  • 在 PowerShell 脚本中调用 msiexec 进行静默安装,可以通过设置 msiexec 的参数来实现。
    在PowerShell脚本中调用msiexec进行静默安装,可以通过设置msiexec的参数来实现。静默安装意味着在安装过程中不会弹出用户界面,也不会进行用户交互。下面是一个示例,演示如何使用PowerShell脚本执行静默安装。示例PowerShell脚本powershellCopyCode#MSI文件的路径$m......
  • MySQL存储过程示例代码
    CREATEDEFINER=`root`@`%`PROCEDURE`getReportWeavingProductionDay`(instartTimedatetime,inendTimedatetime,infactoryIdsvarchar(100),inmachineIdsvarchar(5000),inPageSizeint,inDataFromIndexint)BEGIN--参数说明--startTime:开始时间,endTime:结束时间,f......
  • ansible include_tasks示例
    目录include_tasks导入任务include_tasks拉取ansible代码示例include_tasks导入任务任务文件只包含任务,作用主机范围由playbook.yaml决定include_tasks.yaml----name:restartmemcachedservice:name:memcachedstate:restartedplaybook.yaml----h......
  • C10-02-HTML示例
    HTML:02-1.html基本功能实现:<a>和<img>标签联合使用及<imgsrc="#">图片资源绝对路径引用JS使用:行内式、内嵌式、引入外部JS<input>标签:输入标签文本框<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......