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

深圳网站网页制作公司泉州公司网站建设

深圳网站网页制作公司,泉州公司网站建设,百度百科官网登录,万网站#作者:张桐瑞 文章目录四、条件判断的实现五、循环的实现六、Jinja模板应用1、Jinja模板2、handlers组件七、角色 role1、角色介绍2、案例: 部署zabbix-agent四、条件判断的实现 when: 条件 - hosts: appserveruser: roottasks:- name: create userAuser: nameuser…

#作者:张桐瑞

文章目录

  • 四、条件判断的实现
  • 五、循环的实现
  • 六、Jinja模板应用
    • 1、Jinja模板
    • 2、handlers组件
  • 七、角色 role
    • 1、角色介绍
    • 2、案例: 部署zabbix-agent

四、条件判断的实现

when: 条件

在这里插入图片描述

- hosts: appserveruser: roottasks:- name: create userAuser: name=userA state=presentwhen: ansible_default_ipv4["address"]  == "192.168.140.11"- name: create userBuser: name=userB state=presentwhen: ansible_default_ipv4["address"] == "192.168.140.12"- name: create userCuser: name=userC state=presentwhen: ansible_default_ipv4["address"] == "192.168.140.13"

五、循环的实现

1、loop关键字

- hosts: appserveruser: roottasks: - name: create userAA/BB/CCuser: name={{ item }} state=presentloop:- "userAA"- "userBB"- "userCC"

2、通过字典为item变量赋值

- hosts: appserveruser: rootgather_facts: falsetasks:- name: create user11/22/33user: name={{ item["username"] }} shell={{ item["sh_name"] }} state=presentloop:- { "username":"user11", "sh_name":"/sbin/nologin" }- { "username":"user22", "sh_name":"/bin/bash" }- { "username":"user3z3", "sh_name":"/bin/sync" }

案例: 部署nginx

- hosts: appserveruser: rootgather_facts: falsetasks:- name: push nginx installercopy: src=/opt/work/nginx-1.20.1.tar.gz dest=/tmp- name: install nginx deps yum: name={{ item }} state=presentloop:- gcc- openssl-devel- zlib-devel- pcre-devel - name: compile nginx shell: chdir=/tmp tar xf /tmp/nginx-1.20.1.tar.gz  && cd nginx-1.20.1 && ./configure --prefix=/usr/local/nginx && make && make install- name: start nginx daemonshell: /usr/local/nginx/sbin/nginx && sed -ri '$a \/usr/local/nginx/sbin/nginx' /etc/rc.d/rc.local && chmod a+x /etc/rc.d/rc.local- name: clean nginx installershell: rm -rf /tmp/nginx*

剧本角色方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Jinja模板应用

1、Jinja模板

支持在配置文件中调用变量{{ 变量名称 }}
增加配置文件灵活性
建议配置文件以.j2结尾
Jinja模板要使用template模块推送,触发变量替换

[appserver:vars]
mysql_port=3307[root@ansible ~]# sed -n '1,2p' /opt/work/my.cnf.j2
[mysqld]
port={{ mysql_port }}[root@ansible ~]# cat /opt/work/test5.yml
- hosts: appserveruser: roottasks:- name: copy my.cnftemplate: src=/opt/work/my.cnf.j2 dest=/etc/my.cnf

使用setup模块的状态数据定义配置文件

[mysqld]
bind-address={{ ansible_all_ipv4_addresses[0] }}
port={{ mysql_port }}

2、handlers组件

与tasks同级别组件, 默认情况 ,handers下定义的任务是不会自动执行的,只有在满足了一定的条件,由特定的条件触发其执行
应用场景
检测配置文件,自动重启服务加载配置

- hosts: appserveruser: roottasks:- name: copy my.cnftemplate: src=/opt/work/my.cnf.j2 dest=/etc/my.cnfnotify: restart MySQL daemon    // 触发handlers:- name: restart MySQL daemonservice: name=mariadb state=restarted

七、角色 role

1、角色介绍

本质上就是个目录
/etc/ansible/roles/
一个需求对应一个角色

  1. 创建角色
[root@ansible ~]# cd /etc/ansible/roles/
[root@ansible roles]# ansible-galaxy init nginx 
- Role nginx was created successfully
  1. 目录结构说明
[root@ansible ~]# tree /etc/ansible/roles/nginx/
/etc/ansible/roles/nginx/
├── defaults
│   └── main.yml
├── files
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars└── main.yml

defaults-默认参数
files-普通文件、软件安装包
handlers-触发的操作
meta-元数据
tasks-常规任务、操作
templates-jinja模块
tests-剧本相关的测试代码
vars-定义变量

同一个角色中,相互引用数据时,不需要添加任何目录,直接调用即可

2、案例: 部署zabbix-agent

  1. 创建zabbixAgent角色
[root@ansible ~]# cd /etc/ansible/roles/
[root@ansible roles]# ansible-galaxy init zabbixAgent
- Role zabbixAgent was created successfully
  1. 准备zabbix-agent配置文件模板
[root@ansible roles]# cp /etc/zabbix/zabbix_agentd.conf /etc/ansible/roles/zabbixAgent/templates/zabbix_agentd.conf.j2[root@ansible roles]# vim /etc/ansible/roles/zabbixAgent/templates/zabbix_agentd.conf.j2
Server=192.168.140.10
ServerActive=192.168.140.10
Hostname={{ ansible_fqdn }}

setup模块找主机名

  1. 编写剧本
[root@ansible ~]# cat /etc/ansible/roles/zabbixAgent/handlers/main.yml
---
# handlers file for zabbixAgent- name: restart Zabbix-Agent daemonservice: name=zabbix-agent state=restarted[root@ansible ~]# cat /etc/ansible/roles/zabbixAgent/tasks/main.yml
---
# tasks file for zabbixAgent- name: zabbix repoyum_repository:name: zabbix44file: zabbix44description: zabbix44  YUM repobaseurl: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/gpgcheck: noenabled: yes- name: install Zabbix-Agentyum: name=zabbix-agent state=present- name: copy zabbix-agent config filetemplate: src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.confnotify: restart Zabbix-Agent daemon- name: start Zabbix-Agent daemonservice: name=zabbix-agent state=started enabled=yes

在这里插入图片描述
在这里插入图片描述
4) 执行角色/剧本

[root@ansible ~]# cat /opt/work/installZabbixAgent.yml
- hosts: appserveruser: rootroles:- zabbixAgent[root@ansible ~]# ansible-playbook /opt/work/installZabbixAgent.yml 
http://www.dtcms.com/a/570980.html

相关文章:

  • vps建设网站最近七天的新闻重点
  • 河南周口东宇网站建设怎样申请建立自助网站
  • 网络服务商基本网络参数谷歌seo顾问
  • 专门做调研的网站专业的wap网站开发
  • 做公司网站思路郑州营销型网站建设哪家好
  • 网站上线步骤cms管理什么意思
  • 权威的网站制作招聘网站开发需要多长时间
  • 做网站采集什么文章好模仿淘宝详情页做网站
  • HDU1521 排列组合(指数生成函数)
  • 网站seo教材哪里可以免费下载ppt模板
  • 网站要素的优化设计网站seo关键词
  • 广东公园网站建设代理公司网站备案 超链接
  • 简单的网站代码黄浦网站设计
  • php网站开发结构html家乡网站设计模板
  • 网站开发开发优势网上书城网站建设总结
  • 【IC】NoC设计入门 -- 路由逻辑
  • No052:耐心的修行——当DeepSeek学会在时间中孕育智慧
  • SAP PCE中直接使用移动类412或414做E库存调整导致物料分类账差异无法分摊
  • Halcon实战:精准定位与提取:基于形态学处理的猴子眼睛区域检测完整方案
  • 以net结尾的网站闵行区网站制作
  • 潍坊中脉网站建设站长工具查询域名
  • 北京网站建设首选优达种植园网站模板
  • 胶州网站设计公司wordpress删除缓存会删掉文件吗
  • 海外网站哪个最好深圳家居网站建设公司排名
  • 南京做网站建设搭建的公司一级建造师考试科目
  • 邢台网站开发vscode网页设计教程
  • 如何建立网站?可以分为( )
  • MySQL安装卸载与数据库操作指南
  • 代码随想录-day26
  • PortSwigger靶场之盲 SSRF(服务器端请求伪造)漏洞通关秘籍