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

网站建设技术方面的体会手机优化软件哪个好用

网站建设技术方面的体会,手机优化软件哪个好用,网站建设的费用报价,百度网站优化工具目录 一. Roles简介 二. Roles基本构成 三. Role使用 3.1 playbook中引用roles 3.2 pre_tasks 和 post_tasks 3.3 role的依赖 四. Ansible Galaxy 一. Roles简介 在Ansible中,role是将playbook分割为多个文件的主要机制。它大大简化了复杂playbook…

目录

一.  Roles简介

二.  Roles基本构成 

三.  Role使用 

3.1  playbook中引用roles

3.2  pre_tasks 和 post_tasks

3.3  role的依赖

四.  Ansible Galaxy


一.  Roles简介

         在Ansible中,role是将playbook分割为多个文件的主要机制。它大大简化了复杂playbook的编写, 同时还使得它们非常易于复用。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单的说,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中、并可以便捷地include他们的一种机制。

二.  Roles基本构成 

[root@clinet ansible_1]# tree .
.
├── group_vars
├── host_vars
├── inventory
├── man.yml
└── roles└── new_roles├── defaults│   └── main.yml├── files├── handlers│   └── main.yml├── meta│   └── main.yml├── README.md├── tasks│   └── main.yml├── templates├── tests│   ├── inventory│   └── test.yml└── vars└── main.yml
[root@clinet ansible_1]# 

 Roles各个目录的作用:

1.  group_vars:定义主机组变量,在group_vars目录中创建一个文件,文件的文件名称要与inventory清单中的组名称保持一致。

2.  host_vars:定义主机变量,在host_vars目录中创建文件,文件的名称要与inventory清单中的主机名称保持一致,如果是ip地址,则创建相同ip地址的文件即可。

3.  inventory:定义主机和主机组

4.  main.yml:用于执行roles的playbook,该名称自定义,执行方式为ansible-playbook  xx.yml

5.  roles:存放自定义的roles文件和目录,该目录下new_roles表示一个工作角色,可以存在多个工作角色,每个工作角色目录中必须有上述结构中的文件和目录。

        5.1  files:用于存放copy或script等模块调用的文件和脚本,也用于存放一些非模板文件的文件,如https证书等。

        5.2  tempaltes:用于存放角色相关的Jinja2模板文件,当使用角色相关的模板时,如未明确指定模 板路径,则默认使用此目录中的模板。

        5.3  tasks:角色所要执行的所有任务文件都存放于此,包含一个主文件main.yml,可以在主文件中 通过include的方式引入其他任务文件。

        5.4  vars:用于定义此角色用到的变量,包含一个主文件main.yml,可以在主文件中 通过include的方式引入其他任务文件。

        5.5  meta:用于存储角色的元数据信息,这些元数据用于描述角色的相关属性,包括作者,角色的 主要作用,角色的依赖关系等。默认这些信息会写入到当前目录下的main.yml文件中(可不写)。

        5.6  defaults:除了vars目录,defaults目录也用于定义此角色用到的变量,与vars不同的是, defaults中定义的变量的优先级最低。(实际工作中我们经常将变更比较频繁的变量定义在该文件中)包含一个主文件main.yml,可以在主文件中 通过include的方式引入其他任务文件。

        5.7  handlers:用于定义角色中需要调用 的handlers,包含一个主配置文件main.yml,可通过 include引入其他的handlers文件。


(tests目录可以不要)

创建role的步骤如下:

 1. 创建以roles命名的目录

2. 在roles目录中分别创建角色名称命名的目录,如websrvs等

3. 在每个角色命名的目录中分别创建files、handlers、meta、tasks、teamplates和vars目录,用 不到的目录可以创建为空目录,也可以不创建。

4. 在playbook文件中,调用各角色

 需要说明的是,以上目录并不都是必须的,如果你的roles当中并不需要用到某一个目录,也可 以不用创建,比如我们将所有的变量都放到defaults中,则可以不需要vars目录,如果未用到模 板文件,则不需要templates目录。(建议就当都是必要的,因为后面我们在通过ansible-galaxy init来创建roles的目录就是齐全的。)

三.  Role使用 

         以部署nginx做负载均衡,httpd做后台web为例:

roles目录结构如下:

[root@clinet ansible_1]# tree .
.
├── ansible.cfg
├── group_vars
├── host_vars
├── inventory
├── man.yml
└── roles└── new_roles├── defaults│   └── main.yml├── files│   └── xhz.txt├── handlers│   └── main.yml├── meta│   └── main.yml├── README.md├── tasks│   └── main.yml├── templates│   ├── index.html.j2│   └── nginx.conf.j2└── vars└── main.yml
[root@clinet ansible_1]# 

文件配置内容如下:

[root@clinet ansible_1]# cat inventory 
[proxy]
192.168.194.132[webserver]
192.168.194.130
192.168.194.131
[root@clinet ansible_1]# 
[root@clinet ansible_1]# cat man.yml 
- hosts: proxy:webservergather_facts: yespre_tasks:- name: fireword.serverservice:name: firewalldstate: stoppedenabled: nopost_tasks:- name: message infodebug:msg: 'this playbook finished'roles:- new_roles
[root@clinet ansible_1]# 
[root@clinet ansible_1]# cat roles/new_roles/defaults/main.yml 
listen_port: 80
[root@clinet ansible_1]# 
[root@clinet ansible_1]# cat roles/new_roles/files/xhz.txt 
192.168.194.128
[root@clinet ansible_1]# cat roles/new_roles/handlers/main.yml 
- name: restart nginxservice:name: nginxstate: restarted- name: restart httpdservice:name: httpdstate: restarted
[root@clinet ansible_1]# cat roles/new_roles/tasks/main.yml 
- name: install & configure ngxin blockblock:- name: install nginxpackage:name: nginxstate: present- name: configure nginx.conftemplate:src: nginx.conf.j2dest: /etc/nginx/nginx.confbackup: yesnotify: restart nginx- name: start ngixnservice:name: nginxstate: startedenabled: yeswhen: ansible_ens33.ipv4.address in groups['proxy']- name: install & configure httpd blockblock:- name: install httpdpackage:name: httpdstate: present- name: confgure http.conftemplate:src: index.html.j2dest: /var/www/html/index.htmlbackup: yesnotify: restart httpd- name: start httpdservice:name: httpdstate: startedenabled: yeswhen: ansible_ens33.ipv4.address in groups['webserver']- name: copy filecopy:src: xhz.txtdest: /tmp/backup: yes
[root@clinet ansible_1]# cat roles/new_roles/vars/main.yml 
user_name: nginx
[root@clinet ansible_1]# 
[root@clinet ansible_1]# 

3.1  playbook中引用roles

         创建好roles之后,需要有playbook来进行引用roles,上述中的引用playbook就是install_role.yml

[root@clinet ansible_1]# cat install_role.yml 
- hosts: proxy:webservergather_facts: yesroles:- new_roles
[root@clinet ansible_1]# 
[root@clinet ansible_1]# 

 下面也是一个带入变量的示例:

[root@clinet ansible_1]# cat install_role.yml 
- hosts: proxy:webservergather_facts: yesroles:- role: new_rolesvars:dir1: '/xhz123'dir2: '/flf456'
[root@clinet ansible_1]# 
[root@clinet ansible_1]# 

也可以通过如下方法引用时带入变量: 

[root@clinet ansible_1]# cat install_role.yml 
- hosts: proxy:webservergather_facts: yesroles:- {role: new_roles, dir1: '/xhz123',dir2: '/flf456'}
[root@clinet ansible_1]# 
[root@clinet ansible_1]# 

 还可以在引用时使用条件语句:

[root@clinet ansible_1]# cat install_role.yml 
- hosts: proxy:webservergather_facts: yesroles:- {role: new_roles, when: "ansible_os_family == 'xhz123'"}
[root@clinet ansible_1]# 
[root@clinet ansible_1]#

3.2  pre_tasks 和 post_tasks

         如果在执行一个role时,需要在其前或其后依然要执行某些任务,我们可以使用 pre_tasks 及 post_tasks 来声明。 pre_tasks 是在 role 之前执行,而 post_tasks 则在role之后执行。

[root@clinet ansible_1]# cat install_role.yml 
- hosts: proxy:webservergather_facts: yespre_tasks:- name: fireword.serverservice:name: firewalldstate: stoppedenabled: nopost_tasks:- name: message infodebug:msg: 'this playbook finished'roles:- {role: new_roles, when: "ansible_os_family == 'xhz123'"}
[root@clinet ansible_1]# 

3.3  role的依赖

        如果当前role在执行前需要依赖另一个role,我们可以在roles的meta目录中的main.yml中定义role 的依赖关系。 

示例1:

[root@clinet ansible_1]# cat roles/new_roles/meta/main.yml
dependencies:‐ { role: common, some_parameter: 3 }‐ { role: apache, port: 80 }‐ { role: postgres, dbname: blarg, other_parameter: 12 }

 示例2:

[root@clinet ansible_1]# cat roles/new_roles/meta/main.yml
dependencies:‐ {role: ntp, ntp_server=ntp.ubuntu.com}‐ {role: web}‐ {role: memcached}

四.  Ansible Galaxy

         ansible-galaxy是一个工具,我们可以利用它快速的创建一个标准的roles目录结构,还可以通过它在 https://galaxy.ansible.com上下载别人写好的roles,直接拿来用。

通过ansible-galaxy初始化一个roles的目录结构,方法如下:

ansible‐galaxy   init   new_role

 安装别人写好的roles:

 ansible‐galaxy   install   ‐p   /etc/ansible/roles   bennojoy.mysql

-p:指定路径
默认从galaxy官网下载,官网地址:Ansible Galaxy

列出已安装的roles:

 ansible‐galaxy    list

 查看已安装的roles信息:

 ansible‐galaxy   info   bennojoy.mysql

卸载roles: 

 ansible‐galaxy    remove    bennojoy.mysql


 


文章转载自:
http://catechesis.mdwb.cn
http://cruiserweight.mdwb.cn
http://mammaplasty.mdwb.cn
http://infamous.mdwb.cn
http://encage.mdwb.cn
http://expressivity.mdwb.cn
http://haste.mdwb.cn
http://excrement.mdwb.cn
http://lenitic.mdwb.cn
http://uniquely.mdwb.cn
http://bragi.mdwb.cn
http://prospective.mdwb.cn
http://pungle.mdwb.cn
http://adoptability.mdwb.cn
http://meto.mdwb.cn
http://adrenalectomy.mdwb.cn
http://oberhausen.mdwb.cn
http://commove.mdwb.cn
http://unseal.mdwb.cn
http://minitype.mdwb.cn
http://preterite.mdwb.cn
http://supersystem.mdwb.cn
http://timelessly.mdwb.cn
http://gloatingly.mdwb.cn
http://urological.mdwb.cn
http://reciprocate.mdwb.cn
http://phyllode.mdwb.cn
http://solutionist.mdwb.cn
http://raceabout.mdwb.cn
http://foreland.mdwb.cn
http://sallee.mdwb.cn
http://nominee.mdwb.cn
http://greenth.mdwb.cn
http://evidentiary.mdwb.cn
http://hapteron.mdwb.cn
http://penetralia.mdwb.cn
http://banaba.mdwb.cn
http://negabinary.mdwb.cn
http://fissiparism.mdwb.cn
http://heterogeneous.mdwb.cn
http://coontie.mdwb.cn
http://whimper.mdwb.cn
http://inextricability.mdwb.cn
http://stub.mdwb.cn
http://chalcophanite.mdwb.cn
http://maleficent.mdwb.cn
http://hagiolatrous.mdwb.cn
http://kruller.mdwb.cn
http://parrotry.mdwb.cn
http://acquisitive.mdwb.cn
http://cou.mdwb.cn
http://steeve.mdwb.cn
http://caseinogen.mdwb.cn
http://mordacious.mdwb.cn
http://histosol.mdwb.cn
http://onchocercosis.mdwb.cn
http://laughingly.mdwb.cn
http://scorepad.mdwb.cn
http://marten.mdwb.cn
http://phagocyte.mdwb.cn
http://unwearable.mdwb.cn
http://eigenvalue.mdwb.cn
http://logwood.mdwb.cn
http://hangtime.mdwb.cn
http://conglobulation.mdwb.cn
http://deciduous.mdwb.cn
http://exenteration.mdwb.cn
http://adhesion.mdwb.cn
http://ungratefully.mdwb.cn
http://overclothe.mdwb.cn
http://semicrystalline.mdwb.cn
http://crank.mdwb.cn
http://ochreous.mdwb.cn
http://manpack.mdwb.cn
http://shlocky.mdwb.cn
http://panglossian.mdwb.cn
http://bioinstrumentation.mdwb.cn
http://chicagoan.mdwb.cn
http://pinfish.mdwb.cn
http://grapey.mdwb.cn
http://minutia.mdwb.cn
http://sialolith.mdwb.cn
http://reenactment.mdwb.cn
http://birth.mdwb.cn
http://butyraldehyde.mdwb.cn
http://arthrectomy.mdwb.cn
http://croppy.mdwb.cn
http://decryptograph.mdwb.cn
http://kufa.mdwb.cn
http://mercurochrome.mdwb.cn
http://bangladeshi.mdwb.cn
http://postalcode.mdwb.cn
http://sanforized.mdwb.cn
http://kaliningrad.mdwb.cn
http://chiliarch.mdwb.cn
http://motorway.mdwb.cn
http://protonema.mdwb.cn
http://unep.mdwb.cn
http://areolet.mdwb.cn
http://inspect.mdwb.cn
http://www.15wanjia.com/news/83908.html

相关文章:

  • 网站建设 顺德国际新闻最新
  • 做网站建设的网络公司经营范围怎样填合肥网络推广软件系统
  • 铜仁市城乡住房与建设局网站网站宣传方式有哪些
  • 站点建立网站的方法抖音搜索关键词推广
  • 哈尔滨 建网站西安关键词排名提升
  • 赤峰建设淘宝网站百度总部公司地址在哪里
  • 女鞋网站建设策划方案电商网站平台搭建
  • 做网站需要提供什么条件营销推广投放
  • 网站防御代理数据分析师一般一个月多少钱
  • 网站域名多少钱企业网络策划
  • 做视频背景音乐网站今天的新闻头条
  • 网站的首页需要什么内容拼多多关键词排名查询软件
  • 哈尔滨网站制作fifa最新世界排名
  • 网站建设公司哪个好点杭州seo招聘
  • 宣威网站建设c3sales站长工具在线查询
  • 美国纽约网站建设费用四川最好的网络优化公司
  • 北京人制作工具推广seo网站
  • 简历做的很棒的网站人民日报新闻
  • 高端企业展厅设计公司上海谷歌seo公司
  • 产品类型 速成网站长尾关键词什么意思
  • 运城云起时网站建设论坛软文案例
  • wordpress登陆进去插件济南seo网站优化
  • 外贸建站与推广如何做 google宁波seo外包快速推广
  • 邓州做网站网络搜索引擎有哪些
  • 镇江做网站多少钱什么平台可以发广告引流
  • 做电子商务网站价格个人网站的制作模板
  • 泉州哪里做网站开发北京seo公司排名
  • 免费营销软件网站建设百度推广是干什么的
  • 网站建设费用表格艾滋病阻断药
  • 自建电商平台周口seo公司