二、使用template部署nginx 三、playbook中when简单使用 四、playbook中with_items简单使用 4.1 迭代:with_items 4.2 迭代嵌套子变量 五、template循环示例 5.1 第一种写法 5.2 第二种写法 5.3 第三种写法 六、playbook中if简单使用 一、模板(template)简介 文件文件,嵌套有脚本(使用模板编程语言编写); jinja2语言,使...
4.1 迭代:with_items 4.2 迭代嵌套子变量 五、template循环示例 5.1 第一种写法 5.2 第二种写法 5.3 第三种写法 六、playbook中if简单使用 一、模板(template)简介 文件文件,嵌套有脚本(使用模板编程语言编写); jinja2语言,使用字面量,有以下形式: 字符串:使用单引号或双引号; 数字:整数,浮点数; 列表:[ item...
vim users.yml - name: host j2 hosts: westos tasks: - name: host template: src: ./host.j2 dest: /mnt/hosts vim hosts.j2 {% for WESTOS in group['all']s %} {{ hostvars[WESTOS]['ansible_facts']['ens3']['ipv4']['address'] }}{{hostvars[WESTOS]['ansible_facts']['fqdn']}}{...
上面几章我们已经学会了变量的使用,以及如何书写变量,但是,同学们有没有想过,简单的任务我们的确可以命令行、hosts文件或playbook中简单定义,但是这样同样也提高了耦合性,不利于更多工作或者更多同事的协同办公呢? 而且,其实有时候我们自己定义的变量并不能随着具体的配置来进行动态调整(而template可以),并且变量我们随便...
09 with_items:迭代 10 示例1:利用迭代一次创建多个文件,安装多个命令包 11 示例2:使用迭代创建组 12 示例3:使用迭代配合字典创建用户与组 13 示例1:template,for 14 示例2:template,for,引用字典 15 示例3:for循环中调用字典 16 示例4:for循环中调用if ...
示例1:使用template传输配置文件 cp /etc/nginx/nginx.conf templates/nginx.conf.j2 vim testtemplate.yml — –hosts: os6 remote_user: root tasks: –name: install package yum: name=nginx –name: copy template template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf ...
当我们有需要重复性执行的任务时,可以使用迭代机制。其使用格式为将需要迭代的内容定义为item变量引用,并通过with_items语句指明迭代的元素列表即可。例如: Templates Jinja是基于Python的模板引擎。Template类是Jinja的另一个重要组件,可以看作一个编译过的模块文件,用来生产目标文本,我们可以传递Python的变量给模板去替换...
- name: 安装Nginx yum: name: nginx state: present become: true - name: 配置Nginx虚拟主机 template: src: nginx.conf.j2 dest: /etc/nginx/conf.d/{{ item.name }}.conf with_items: "{{ websites }}" notify: restart nginx handlers: - name: 重启Nginx service: name: nginx state: restarte...
如果您需要在替换变量后复制文件,例如具有 IP 更改的配置文件,请改用template模块。 将文件从本地计算机复制到远程服务器 默认情况下,copy模块将检查本地计算机上src参数中设置的文件。然后它将文件复制到目标路径中指定的远程计算机dest(目标)路径。下面的示例将当前用户(在本地计算机上)的主目录中的 sample.txt 文...
template: src=/srv/httpd.j2 dest=/etc/nginx/nginx.conf tags: config - name: 批量创建用户 user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2 tags: adduser 使用如下命令可以只执行打了某个标签的任务,或者跳过某个标签的任务 ...