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

荆州seo网站seo服务

荆州seo,网站seo服务,lovefort表白网站制作,做网站有什么必要文章目录 1. handlers与notify2. tags组件3. playbook中使用变量3.1使用 setup 模块中变量3.2在playbook 命令行中定义变量3.3在playbook文件中定义变量3.4使用变量文件3.5主机清单文件中定义变量主机变量组(公共)变量 1. handlers与notify Handlers&am…

文章目录

  • 1. handlers与notify
  • 2. tags组件
  • 3. playbook中使用变量
    • 3.1使用 setup 模块中变量
    • 3.2在playbook 命令行中定义变量
    • 3.3在playbook文件中定义变量
    • 3.4使用变量文件
    • 3.5主机清单文件中定义变量
      • 主机变量
      • 组(公共)变量

1. handlers与notify

  • Handlers:是task列表,用于当关注的资源发生变化时,采取一定的操作。
  • Notify:被触发的操作,仅在所有的变化发生完成后一次性地执行指定操作。在notify中列出的操作成为handler,也即notify中调用handler中定义的操作。
  • 例如:更新配置文件,重新启动playbook,系统不会重启服务,这时可以通过定义一个notify去重启服务,handlers负责执行重启。
  1. 写一个playbook文件安装httpd
vim httpd.yml
---
- hosts: webserversremote_user: roottasks:- name: install httpd packageyum: name=httpd- name: copy conf filecopy: src=files/httpd.conf dest=/etc/httpd/conf/ backup=yes- name: start serviceservice: name=httpd state=started enabled=yes
ansible-playbook httpd.yml

在这里插入图片描述
2. 查看当前的端口状态

ansible webservers -a 'ss -ntl'

在这里插入图片描述

  1. 修改httpd的端口,从8080修改为81
vim ./files/httpd.conf

在这里插入图片描述
在这里插入图片描述

  1. 现在配置文件修改过了,我们在yaml文件中增加handlers与notify触发机制
vim httpd.yml
---
- hosts: webserversremote_user: roottasks:- name: install httpd packageyum: name=httpd- name: copy conf filecopy: src=files/httpd.conf dest=/etc/httpd/conf/ backup=yesnotify: restart service  # 当配置文件改变时,调用handlers里面的restart service- name: start serviceservice: name=httpd state=started enabled=yeshandlers: # 当上面的某个或某些任务改变时,执行下面的任务- name: restart serviceservice: name=httpd state=restarted
  1. 重新执行playbook,就可以检测到文件的修改,触发notify和handlers操作。
ansible-playbook httpd.yml

在这里插入图片描述
6. 最后查看端口状态,发现8080端口已经换成了81:

ansible webservers -a 'ss -ntl'

在这里插入图片描述

在这里插入图片描述
如果报错,说明端口号没有权限,换一个端口号。
systemctl status httpd.service
在这里插入图片描述


notify和handlers操作可以同时定义多个,相当于多个函数其实可以同时调用。

2. tags组件

在大型项目当中,通常一个playbook会有非常多的task。而我们每次执行这个playbook时,都会将所有task运行一遍。
而事实上,在实际使用过程中,我们可能只是想要执行其中的一部分任务而已,并不想把整个playbook完整跑一遍。这个时候就需要用到tags。
通过tags,我们可以给playbook中的某一些任务打上“标签”,而在执行playbook的时候,我们可以通过选定标签的方式指定只执行哪一些任务或者不执行哪一些任务。

  1. 创建一个playbook文件
vim httpd_tag.yml

#install httpd
- hosts: webserversremote_user: rootgather_facts: notasks:- name: Install httpdyum: name=httpd state=present- name: Install configure filecopy: src=files/httpd.conf dest=/etc/httpd/conf/#定义tagstags: config- name: web htmlcopy: src=files/index.html  dest=/var/www/html/- name: start serviceservice: name=httpd state=started enabled=yes#定义tagstags: service
  1. 查看当前tags列表(不知道命令就用–help查看)
ansible-playbook --list-tags httpd_tag.yml

在这里插入图片描述
3. 再次修改httpd的端口号

vim files/httpd.conf

在这里插入图片描述
4. 针对linux101这一台主机运行config 这个tag代码段。

ansible-playbook -t config httpd_tag.yml --limit linux101ansible linux101 -a 'ss -ntl'
  1. 最后给它卸掉(PS:因为我的电脑…)
ansible-playbook  remove_httpd.yml 

在这里插入图片描述

3. playbook中使用变量

  • 变量名:仅能由字母、数字和下划线组成,且只能以字母开头。
  • 变量定义:variable=value

范例:http_port=80

  • 变量调用方式:通过{{ variable_name }} 调用变量,且变量名前后建议加空格,有时用“{{ variable_name }}”才生效
  • 变量来源:
  1. ansible 的 setup facts 远程主机的所有变量都可直接调用
  2. 通过命令行指定变量,优先级最高 ansible-playbook -e varname=value
  3. 在playbook文件中定义
   vars:- var1: value1- var2: value2
  1. 在独立的变量YAML文件中定义
   - hosts: allvars_files:- vars.yml
  1. /etc/ansible/hosts 中定义
  • 主机(普通)变量:主机组中主机单独定义,优先级高于公共变量
  • 组(公共)变量:针对主机组中所有主机定义统一变量

6.在role中定义

3.1使用 setup 模块中变量

本模块自动在playbook调用,不要用ansible命令调用

  • 案例:使用setup变量
---
#var.yml
- hosts: allremote_user: root#调用系统变量必须要收集,gather_facts: yes或者不写gather_facts: yestasks:- name: create log filefile: name=/data/{{ ansible_nodename }}.log state=touch owner=yu mode=600
ansible-playbook  var.yml

在这里插入图片描述

ansible all -a 'ls /data'

在这里插入图片描述

3.2在playbook 命令行中定义变量

在playbook中写变量,在命令行赋值调用

范例:

vim val_install.yml
---
- hosts: webserversremote_user: roottasks:- name: install packageyum: name={{ pkname }} state=present
ansible-playbook  –e pkname=httpd  val_install.yml

在这里插入图片描述

3.3在playbook文件中定义变量

范例:

vim var_uninstall.yml
---
- hosts: webserversremote_user: rootvars:- pkname: httpdtasks:- name: uninstall pknameyum: name={{ pkname }} state=absent

直接运行,使用默认参数:

ansible-playbook var_uninstall.yml

在运行时重新给变量赋值,会修改参数:

ansible-playbook -e 'pkname=nginx' var_uninstall.yml

3.4使用变量文件

可以在一个独立的playbook文件中定义变量,在另一个playbook文件中引用变量文件中的变量,比playbook中定义的变量优化级高

  1. 新建playbook定义变量
vim vars.yml
---
# variables file
var1: httpd
var2: nginx
vim  var_log.yml
---
- hosts: webserversremote_user: rootvars_files:- vars.yml
#   - /root/playbook/vars.ymltasks:- name: create httpd logfile: name=/data/{{ var1 }}.log state=touch- name: create nginx logfile: name=/data/{{ var2 }}.log state=touch
​ansible-playbook var_log.yml
ansible all -a 'ls /data/ '

在这里插入图片描述

3.5主机清单文件中定义变量

主机变量

在inventory 主机清单文件中为指定的主机定义变量以便于在playbook中使用

组(公共)变量

在inventory 主机清单文件中赋予给指定组内所有主机上的在playbook中可用的变量,如果和主机变是同名,优先级低于主机变量。

范例:

  1. 打开hosts文件,添加主机变量和公共变量
vim /etc/ansible/hosts
[webservers]
linux101 hname=www1 domain=yu.io #添加主机变量(优先级高于公共变量)
linux102 hname=www1 domain=yhx.com[webservers:vars]#添加webservers的组变量(公共变量)
mark="-"
domain=edu.cn
  1. 调用hostname模块,修改主机名
#先想想主机名应该是什么
ansible webservers -m hostname -a 'name={{ hname}}{{ mark }}{{ domain }}'
ansible all -a 'hostname'

在这里插入图片描述

因为主机变量优先级高于组变量(公共变量),所以linux101的主机名应该是:www1-yu.io,linux102的主机名应该是:www1.yhx.com.

  1. 还可以通过行命令来指定变量,这时候指定的变量可以覆盖之前文件中定义的变量
#命令行指定变量: 
ansible webservers -e domain=sch.com -m hostname -a 'name={{                                                                hname }}{{ mark }}{{ domain }}'
ansible all -a 'hostname'

在这里插入图片描述
4. 再将hostname修改回去

ansible linux101 -m hostname -a 'name=linux101' 
ansible linux102 -m hostname -a 'name=linux102'
ansible all -a 'hostname'

在这里插入图片描述

http://www.dtcms.com/wzjs/331302.html

相关文章:

  • 北京市网站建设南京seo网络推广
  • 济宁网站建设优惠如何做好网络销售技巧
  • wordpress 主题吧冯耀宗seo课程
  • 网站建设可行性研究报告 baidu可以入侵的网站
  • 微企点做的网站百度搜得到吗个人博客搭建
  • 淘宝网站750海报怎么做志鸿优化网下载
  • thinkphp5 做网站软文外链购买平台
  • 河源网站开发百度网址大全官方网站
  • 深州网站互联网的推广
  • 没有货源可以开网店吗百度seo软件曝光行者seo
  • 青海高端网站建设网络营销的特点有几个
  • 入侵网站做360广告关键词上首页软件
  • 巫山做网站那家好seo基础视频教程
  • 深圳有哪些网站开发公司seo是对网站进行什么优化
  • 抢车票网站怎么做百度爱采购推广一个月多少钱
  • 怀化网站制作深圳百度推广公司
  • wps可以做网站吗公司网站设计定制
  • 甘肃网站建设网站制作最好用的磁力搜索器
  • 刚做的婚恋网站怎么推广怎样把自己的产品放到网上销售
  • 建设局哪个网站查证电商运营培训哪个机构好
  • 网站怎么做app吗兰州网络推广与营销
  • 如何给网站的关键词做排名seo免费培训
  • 武汉建设银行社会招聘网站手机优化
  • 山东省无障碍网站建设标准高平网站优化公司
  • 学做彩票网站好快速优化关键词排名
  • 高校网站如何建设超级seo工具
  • 建设一个网络交友的网站的论文网络上如何推广网站
  • 短视频如何引流与推广手机网站seo免费软件
  • 沅江网站制作电脑培训
  • 怎么做淘宝劵网站seo销售话术开场白