首页 > 其他分享 >A-Playbook-template

A-Playbook-template

时间:2023-02-23 13:32:55浏览次数:23  
标签:name nginx items item state user template Playbook

template功能:根据模块文件动态生成对应的配置文件

template文件必须存放于templates目录下,且命名为 .j2 结尾

yaml/yml 文件需和templates目录平级,目录结构如下

./
├── temnginx.yml
└── templates
└── nginx.conf.j2

示例:利用template 同步nginx配置文件

准备templates/nginx.conf.j2文件

vim temnginx.yml
- hosts: websrvs
remote_user: root
tasks:
- name: template config to remote hosts
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf

Playbook中template变更替换

修改文件nginx.conf.j2 下面行为

worker_processes {{ ansible_processor_vcpus }};  

Playbook中template算术运算

worker_processes {{ ansible_processor_vcpus**2 }};
worker_processes {{ ansible_processor_vcpus+2 }};

迭代: with_items

迭代:当有需要重复性执行的任务时,可以使用迭代机制 对迭代项的引用,固定变量名为” item“ 要在task中使用with_items给定要迭代的元素列表 列表格式: 字符串 字典

- name: add several users
user: name={{ item }} state=present groups=wheel
with_items:
- testuser1
- testuser2

上面语句的功能等同于下面的语句

- name: add user testuser1
user: name=testuser1 state=present groups=wheel
- name: add user testuser2
user: name=testuser2 state=present groups=wheel

将多个文件进行copy到被控端

---
- hosts: testsrv
remote_user: root
tasks
- name: Create rsyncd config
copy: src={{ item }} dest=/etc/{{ item }}
with_items:
- rsyncd.secrets
- rsyncd.conf
- hosts: websrvs
remote_user: root
tasks:
- name: copy file
copy: src={{ item }} dest=/tmp/{{ item }}
with_items:
- file1
- file2
- file3
- name: yum install httpd
yum: name={{ item }} state=present
ith_items:
- apr
- apr-util
- httpd
- hosts: websrvs
remote_user: root
tasks:
- name: install some packages
yum: name={{ item }} state=present
with_items:
- nginx
- memcached
- php-fpm

迭代嵌套子变量

- hosts: websrvs
remote_user: root
tasks:
- name: add some groups
group: name={{ item }} state=present
with_items:
- group1
- group2
- group3
- name: add some users
user: name={{ item.name }} group={{ item.group }} state=present
with_items:
- { name: 'user1', group: 'group1' }
- { name: 'user2', group: 'group2' }
- { name: 'user3', group: 'group3' }

标签:name,nginx,items,item,state,user,template,Playbook
From: https://blog.51cto.com/u_13688209/6081112

相关文章

  • A-PlayBook变量
    变量名:仅能由字母、数字和下划线组成,且只能以字母开头变量来源:1ansiblesetupfacts远程主机的所有变量都可直接调用2在/etc/ansible/hosts中定义3通过命令行指定变......
  • nacos ribbon restTemplate 没有生效
    @ConfigurationpublicclassBeanConfig{@LoadBalanced@BeanpublicRestTemplaterestTemplate(){returnnewRestTemplate();}} ......
  • A-PlayBook示例
    运行playbook的方式ansible-playbook<filename.yml>...[options]常见选项--check-C只检测可能会发生的改变,但不真正执行操作--list-hosts列出运行任务的主机--list-ta......
  • A-Ansible-Playbook参数
    Playbook核心元素Hosts#执行的远程主机列表Tasks#任务集Variables#内置变量或自定义变量在playbook中调用Templates#模板,可替换模板文件中的变量并实现一些简单逻辑......
  • django.template.exceptions.TemplateDoesNotExist: bootstrap4/uni_form.html
    问题:在使用django-crispy-forms时,跳转到signup页面出错django.template.exceptions.TemplateDoesNotExist:bootstrap4/uni_form.html解决方法:使用bootstrap51.安装cr......
  • cpp generate template random number
    #include<iostream>#include<random>template<typenameT>Tgen_random(Tmin,Tmax){std::random_devicerd;std::mt19937_64mt(rd()......
  • 数据库连接池druid和JdbcTemplate
    使用数据库连接池的原因1.之前每一次访问数据库都需要获取连接,经过操作后再释放连接。消耗资源,代码量多。  2.获取连接的操作是向系统底层申请资源,是非常耗时的,使用......
  • ansible playbook role及调试
    目录ansibleplaybookrole及调试role简介创建role步骤role中变量设置使用default定义变量使用命令行的变量在palybbok.yml文件直接定义变量在var中定义自己的变量pre_tas......
  • ansible playbook include
    目录ansibleplaybookincludeincludeinclude_tasksinclude_asks基本使用include_tasks使用tagsimport_tasks使用include_tasks和import_task区别一include_tasks和import_......
  • ElasticsearchTemplate的详细使用,完成多条件查询、匹配度查询等
    ElasticsearchTemplate是Spring对ES的javaapi进行的封装,提供了大量的相关的类来完成各种各样的查询。在日常的使用中,应该说最常用的查询就是queryList方法。public<T>Lis......