模板--templates
学习目标:
提示:这里可以添加学习目标
学习内容:
模板templates
templates功能
利用template模板安装nginx样例
[root@zabbix_server ansible]# tail -9 /etc/ansible/hosts
[LYP]
#172.28.102.130 ansible_user=root ansible_ssh_pass=Cm146688!
#172.28.102.131 ansible_user=root ansible_ssh_pass=Cm146688!
172.28.102.130 http_port=81 #变量的优先级:命令行>playbook>普通变量>公共组变量
172.28.102.131 http_port=82[root@zabbix_server ansible]# grep -E '^worker_processes' templates/nginx.conf.j2
worker_processes {{ ansible_processor_vcpus*2 }}[root@zabbix_server ansible]# grep listen templates/nginx.conf.j2 listen {{ http_port }};listen [::]:{{ http_port }};[root@zabbix_server ansible]# cat templatenginx.yml
---
- hosts: LYPremote_user: rootvars:- http_port: 9090tasks:- name: install packageyum: name=nginx- name: copy templatetemplate: src=nginx.conf.j2 dest=/etc/nginx/nginx.confnotify: restart service- name: start serviceservice: name=nginx state=started enabled=yeshandlers:- name: restart serviceservice: name=nginx state=restarted[root@zabbix_server ansible]# ansible-playbook templatenginx.yml PLAY [LYP] **************************************************************************************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]TASK [install package] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]TASK [copy template] ****************************************************************************************************************************************************************************************
changed: [172.28.102.130]
changed: [172.28.102.131]TASK [start service] ****************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]RUNNING HANDLER [restart service] ***************************************************************************************************************************************************************************
changed: [172.28.102.130]
changed: [172.28.102.131]PLAY RECAP **************************************************************************************************************************************************************************************************
172.28.102.130 : ok=5 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
172.28.102.131 : ok=5 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 [root@zabbix_server ansible]# ansible LYP -m shell -a 'netstat -luntp|grep nginx'
172.28.102.131 | CHANGED | rc=0 >>
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 22445/nginx: master
tcp6 0 0 :::9090 :::* LISTEN 22445/nginx: master
172.28.102.130 | CHANGED | rc=0 >>
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 29522/nginx: master
tcp6 0 0 :::9090 :::* LISTEN 29522/nginx: master[root@zabbix_server ansible]# ansible LYP -m shell -a 'ps -ef |grep nginx'
172.28.102.130 | CHANGED | rc=0 >>
root 29522 1 0 17:30 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 29525 29522 0 17:30 ? 00:00:00 nginx: worker process
nginx 29526 29522 0 17:30 ? 00:00:00 nginx: worker process
root 29697 29696 0 17:38 pts/1 00:00:00 /bin/sh -c ps -ef |grep nginx
root 29699 29697 0 17:38 pts/1 00:00:00 /bin/sh -c ps -ef |grep nginx
172.28.102.131 | CHANGED | rc=0 >>
root 22445 1 0 17:30 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 22446 22445 0 17:30 ? 00:00:00 nginx: worker process
nginx 22447 22445 0 17:30 ? 00:00:00 nginx: worker process
root 22973 22972 0 17:38 pts/1 00:00:00 /bin/sh -c ps -ef |grep nginx
root 22975 22973 0 17:38 pts/1 00:00:00 grep nginx
when
- 条件测试,如果需要根据变量,facts或此前任务的执行结果来做为莫task执行与否的前提时要用到条件测试,通过when语句实现,在task使用,jinja2的语法格式:
- when语句
- 在task后添加when子句即可实现条件测试,when语句支持jinja2表达式语法
- 示例:
样例
[root@zabbix_server ansible]# cat templatenginx.yml
---
- hosts: LYPremote_user: rootvars:
# - http_port: 9090tasks:- name: install packageyum: name=nginx- name: copy template6template: src=nginx.conf6.j2 dest=/etc/nginx/nginx.confwhen: ansible_hostname == "zabbix_agent2"notify: restart service- name: copy template7template: src=nginx.conf7.j2 dest=/etc/nginx/nginx.confwhen: ansible_hostname == "zabbix_proxy"notify: restart service- name: start serviceservice: name=nginx state=started enabled=yeshandlers:- name: restart serviceservice: name=nginx state=restarted[root@zabbix_server ansible]# ll templates/
total 8
-rw-r--r-- 1 root root 2389 Apr 30 17:16 nginx.conf6.j2
-rw-r--r-- 1 root root 2389 Apr 30 18:09 nginx.conf7.j2[root@zabbix_server ansible]# ansible LYP -m shell -a 'netstat -luntp |grep nginx'
172.28.102.130 | CHANGED | rc=0 >>
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 30869/nginx: master
tcp6 0 0 :::81 :::* LISTEN 30869/nginx: master
172.28.102.131 | CHANGED | rc=0 >>
tcp 0 0 0.0.0.0:82 0.0.0.0:* LISTEN 25965/nginx: master
tcp6 0 0 :::82 :::* LISTEN 25965/nginx: master
学习产出:
提示:这里统计学习计划的总量
例如:
- 技术笔记 2 遍
- CSDN 技术博客 3 篇
- 习的 vlog 视频 1 个
模板--templates相关推荐
- C++ 高级篇(一)—— 模板(Templates)
模板(Templates)是ANSI-C++ 标准中新引入的概念.如果你使用的 C++ 编译器不符合这个标准,则你很可能不能使用模板. 函数模板( Function templates) 模板(Tem ...
- IntelliJ IDEA 快捷键及模板Templates设置
一.设置快捷键(Keymap) 1. 设置快捷为 Eclipse 的快捷键 2.通过快捷键功能修改快捷键设置 3.通过指定快捷键,查看或修改其功能 4.导入已有的设置 点击 0K 之后,重启 IDEA ...
- 【Youtobe trydjango】Django2.2教程和React实战系列七【模板templates和Django模板引擎】
[Youtobe trydjango]Django2.2教程和React实战系列七[模板templates和Django模板引擎] 1. 修改视图函数 2. 新建模板文件夹和html文件 3. 项目配 ...
- 【django】模板(templates)
一.模板使⽤步骤 创建模板 设置模板查找路径 模板接收视图传⼊的数据 模板处理数据 二.创建模板 1.在应⽤同级⽬录下创建模板⽂件夹templates. ⽂件夹名称固定写法. 2.在templates ...
- 复习django项目三——视图显示模板templates
1.在项目根目录创建templates文件夹,并在setting里设置模板路径DIR TEMPLATES = [{'BACKEND': 'django.template.backends.django ...
- flask mysql项目模板渲染_Flask系列(二) 模板 templates
BEGIN: 在前面,我们简单的实现了第一个简单的flask项目,但是这个项目只是单纯的在网页上显示一句话,没有任何其他的东西,很是单调.这里,我们即将学习Flask的模板.相信了解过django的人 ...
- AS 代码模板 文件模板 Templates MD
修改 File and Code Templates Settings –> Editor –>[File and Code Templates] 或者在右键new时选择子菜单[Edite ...
- 三:Angular 模板 (Templates)
1 什么是模板 它是页面呈现的骨架,是盛装组件数据的容器.与之相关的内容包括了-----模板与组件件 '数据交互'.'内置指令'.'表单'.'管道'等. 1.1 模板语法概览 //插值:绑定属性变量的 ...
- Python Django模板templates渲染及配置
- iangularjs 模板_AngularJS 模板(Templates)
AngularJS 模板(Templates) Angular的模板是一个声明式的视图,它指定信息从模型.控制器变成用户在浏览器上可以看见的视图. 它把一个静态的DOM -- 只包含HTML,CSS以 ...
最新文章
- 美团分布式服务治理框架OCTO之二:Mesh化
- 区块链相关论文研读7:通过分片(Sharding)扩展区块链
- iOS:quartz2D绘图(给图形绘制阴影)
- 成功解决ValueError: Dimension 1 in both shapes must be equal, for ‘Assign_8‘ (op: ‘Assign‘) with input s
- MySQL-proxy实现读写分离详细步骤
- QT的QSortFilterProxyModel类的使用
- mysql 同步更新_MySQL slave 不能同步更新
- window.onbeforeunload() 事件调用ajax的解决方法
- NodeJS管理利器 - pm2常用命令
- AJAX简单使用介绍
- 黑客可利用 TeamViewer 缺陷远程窃取系统密码
- xgboost算法_XGBoost 原理 及 常见面试题
- GBDT(Gradient Boosting Decision Tree) 没有实现只有原理
- Windows10安装Matlab 2018b教程
- 修改android 工程图标,AndroidStudio替换项目图标ic_launcher操作
- defer、delay和postpone的区别?
- Fibo Rule决策引擎应用实践
- 一张我为写植物大战僵尸外.挂而画的草稿图...
- Api接口的模块化管理
- mac删除分区并合并分区