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

南充做网站公司哪家好网站配色 原则

南充做网站公司哪家好,网站配色 原则,怎么做cms网站,一个前端页面多少钱17.RedHat认证-Ansible自动化运维(下) 这个章节讲ansible的变量#xff0c;包括变量的定义、变量的规则、变量范围、变量优先级、变量练习等。 以及对于tasks的控制#xff0c;主要有loop循环作业、条件判断等 变量 介绍 Ansible支持变量功能#xff0c;能将value存储到…17.RedHat认证-Ansible自动化运维(下) 这个章节讲ansible的变量包括变量的定义、变量的规则、变量范围、变量优先级、变量练习等。 以及对于tasks的控制主要有loop循环作业、条件判断等 变量 介绍 Ansible支持变量功能能将value存储到变量中这样就能在Ansible项目中重复使用这样就可以简化项目的创建和维护减少错误率。 变量提供了一个变量提供了一种方便的方法来管理ansible项目中给定环境的动态值。 变量可以是要创建的用户要安装的包要启动的服务要删除的文件要从互联网下载的文件等等 规则 变量由必须以字母开头的字符串组成并且只能包含字母数字和下划线组成。 无效变量有效变量web serverweb_serverremote.fileremote_file1st filefile_1或file1remoteserver$1remote_server_1或remote_server1 定义变量 变量几乎可以定义在ansible项目中的任意位置。然而这有三种基本的范围级别 1.Globe scope从命令行设置变量或Ansible配置文件中设置变量 2.play scope 在play和相关结构中设置变量 3.host scope 通过inventory在主机组或单个主机中设置变量fact采集变量或者register 如果在一个级别上定义了名字相同的两个变量会选择先定义的那个。 在inventory中定义的变量会被 playbook中定义的覆盖playbook中定义的变量会被命令行定义的变量覆盖。 http://docs.ansible.com/ansible/playbooks_variables.html 变量说明详细文档 playbook中定义变量 当写playbook时管理员可以在task中使用它们自己定义的变量。例如一个叫做web_package的变量可以 被被定义为httpd然后使用yum模块来调用这个变量进而安装httpd包 声明定义 playbook变量可以通过多种方式进行定义。一个最简单的方式就是在playbook的开头通过vars定义例如 文件定义 也可以在playbook中通过指定外部文件作为变量文件 主机变量和组变量 inventory变量直接应用到被管理主机有两种方式 1.应用到特定主机 2.应用到特定组 主机变量优先级高于组变量但是在playbook中定义的主机变量优于这两种方式 变量定义 这种定义变量的方式让inventory的管理更复杂了。因为在同一个文件中包含了主机和变量并且使用了不同的语法。 将变量的定义放在一个文件中例如放在当前的目录下的var目录下的vars.yml [studentworkstation playbook-review]$ vim test.yml - name: this is a var testhosts: allvars_files:- var/vars.yml # 相对路径推荐写相对路径tasks:- name: debug module testdebug:msg: {{ user }} is very handsome ,but {{ user }} is very pool# 在var目录下定义了user变量 [studentworkstation playbook-review]$ cd var/ [studentworkstation var]$ cat vars.yml user: ztf# 执行playbook [studentworkstation playbook-review]$ ansible-playbook test.yml 上面这种定义变量的方式让inventory的管理更复杂了。因为在同一个文件中包含了主机和变量并且使用了不同的语法。 使用group_vars和host_vars目录 其实大多数生产环境里尽最大可能将变量和inventory文件以及playbook文件分开来写看着清爽。 不要混在一起非常不利于维护和阅读 使用这两个目录就可以解决上面的问题解耦文件生产环境中用的多。 很简单在你的playbook目录下创建两个这样的目录分别是 group_vars和host_vars目录 记住文件名强制必须一样不能改变。 然后就很简单了如果你是针对主机组设置变量就在group_vars目录下创建一个主机组名称相同的文件。 举个例子假设你的inventory文件里有一个主机组 production,里面有两个主机 servera serverb [production] servera serverb 然后你就在group_vars目录下创建同名的主机组的文件 就叫 production,然后在这个文件里定义的变量都会应用在这个production主机组里 其次如果你是针对主机设置变量就在host_vars目录下创建一个主机名称相同的文件。方法如上。 练习playbook变量 [kioskfoundation0 ~]$ ssh workstation[studentworkstation ~]$ lab data-variables start[studentworkstation ~]$ cd data-variables/[studentworkstation data-variables]$ cat inventory [webserver] servera.lab.example.com[studentworkstation data-variables]$ cat ansible.cfg [defaults] inventory inventory remote_user devops[privilege_escalation] become true# 创建playbook [studentworkstation data-variables]$ vim playbook.yml [studentworkstation data-variables]$ cat playbook.yml --------------------------- 内容如下 ---------------------------------------------------------- --- - name: Deploy and start Apache HTTPD servicehosts: webservervars:web_pkg: httpdfirewall_pkg: firewalldweb_service: httpdfirewall_service: firewalldpython_pkg: python3-PyMySQLrule: httptasks:- name: Required packages are installed and up to dateyum:name:- {{ web_pkg }}- {{ firewall_pkg }}- {{ python_pkg }}state: latest- name: The {{ firewall_service }} service is started and enabledservice:name: {{ firewall_service }}enabled: truestate: started- name: The {{ web_service }} service is started and enabledservice:name: {{ web_service }}enabled: truestate: started- name: Web content is in placecopy:content: Example web contentdest: /var/www/html/index.html- name: The firewall port for {{ rule }} is openfirewalld:service: {{ rule }}permanent: trueimmediate: truestate: enabled- name: second play Verify the Apache servicehosts: localhostbecome: falsetasks:- name: Ensure the webserver is reachableuri:url: http://servera.lab.example.comstatus_code: 200 ------------------------------------------------------------------------------------- # 运行playbook结果正确 [studentworkstation data-variables]$ ansible-playbook playbook.yml------------------------------ 【警戒线】 -------------------------------#【注意】在这个例子中定义的变量是在playbook文件里我们运用之前所学知识将变量定义在外部的单独文件里。 [studentworkstation data-variables]$ mkdir variables [studentworkstation data-variables]$ cd variables/ [studentworkstation variables]$ vim web.yml ------------------------------------------------------- web_pkg: httpd firewall_pkg: firewalld web_service: httpd firewall_service: firewalld python_pkg: python3-PyMySQL rule: http ------------------------------------------------------- # 修改playbook.yml [studentworkstation data-variables]$ vim playbook.yml vars_files:- variables/web.yml# 运行效果正确。 [studentworkstation data-variables]$ ansible-playbook playbook.yml ------------------------------ 【警戒线】 ------------------------------- # 再运用group_vars和host_vars的知识再来修改 # 这里的inventroy文件里只有主机组那么我们创建一个group_vars[studentworkstation data-variables]$ mkdir group_vars [studentworkstation data-variables]$ cd group_vars/ [studentworkstation group_vars]$ vim webserver [studentworkstation group_vars]$ cd .. [studentworkstation data-variables]$ vim playbook.yml # 这一步修改playbook.yml文件就是去掉 vars_files:- variables/web.yml 这个变量文件这两行。# 然后再执行执行效果正确。 [studentworkstation data-variables]$ ansible-playbook playbook.yml # 练习完还原环境即可 [studentworkstation data-variables]$ lab data-variables finish加密敏感数据 通过 vault 来加密一些敏感数据例如密码令牌等 [studentworkstation playbook-review]$ cd var [studentworkstation var]$ ls vars.yml [studentworkstation var]$ ansible-vault create test.yml # 创建加密文件 New Vault password: Confirm New Vault password: # 查看加密文件内容如果你直接使用cat去查看就是一堆加密的字母 [studentworkstation var]$ ansible-vault view test.yml Vault password: user: ztf# 编辑加密文件 [studentworkstation var]$ ansible-vault edit test.yml Vault password: # 加密现有的文件 [studentworkstation var]$ ansible-vault encrypt vars.yml New Vault password: Confirm New Vault password: Encryption successful# 解密现有的文件 [studentworkstation var]$ ansible-vault decrypt test.yml Vault password: Decryption successful [studentworkstation var]$ cat test.yml user: ztf# 改密码 [studentworkstation var]$ ansible-vault rekey vars.yml Vault password: New Vault password: Confirm New Vault password: Rekey successfulansible vault 练习 [studentworkstation ~]$ lab data-secret start[studentworkstation data-secret]$ ansible-vault edit secret.yml 密码是redhat 去掉注释符号保存退出[studentworkstation data-secret]$ vim create_user.yml--- - name: Create user accounts for all our servershosts: devserversbecome: Trueremote_user: devopsvars_files:- secret.ymltasks:- name: Creating user from secret.ymluser:name: {{ username }}password: {{ pwhash }}[studentworkstation data-secret]$ ansible-playbook --ask-vault-pass create_user.yml [studentworkstation ~]$ lab data-secret finishFacts变量(重要) Ansible facts是在一个被管理主机上通过ansible自动被发现的变量。facts包含特定的主机信息这些主机信息可以像正 playsconditionalsloops或者其它场景下不同的应用场景取决于从被管理主机上采集的value类型 常见的facts变量 从被管理主机上可以搜集到facts包含 1.主机名 2.内核版本 3.网卡 4.地址 5.操作系统版本 6.环境变量 7.CPU的数量 8.可用内存或者空闲内容 9.可用磁盘空间 使用场景 使用facts来检索被管理主机的状态是非常方便的而且还可以基于这些状态做不同的动作例如 1.一个主机可以通过条件task判断如果系统的内核版本不匹配则重启切换到最新的内核版本。 2.通过fact检索的内存情况来自定义mysql的配置文件 3.在配置文件中使用的IPv4地址可以基于fact来设置 运行原理 每个play都会在第一个task之前自动运行setup模块以便搜集fact。在Ansible2.3版本通常这个task会被报告成“ Facts”在以前的版本通常会被报告执行setup。你不需要在你的play中运行setup它会自动运行。 如果你想看到setup模块的内容你可以通过ad hoc命令运行 [studentworkstation data-secret]$ ansible servera.lab.example.com -m setup关闭facts采集 有时候你可能不想在你的paly中开启facts采集。为什么会有这样的情况有几点原因 1.你不想在你的paly中使用facts 2.你想提升你的play速度 3.你想减少负载 可能被管理主机不能运行setup模块比如需要在采集facts之前需要安装前置软件 Task控制 loop循环 这里的{{item}} 是固定的固定写法就是这样。不能变 条件判断 语法 多条件判断 条件判断和循环结合 loop循环练习 [studentworkstation ~]$ lab control-flow start [studentworkstation ~]$ cd control-flow/ [studentworkstation control-flow]$ ls ansible.cfg inventory [studentworkstation control-flow]$ cat ansible.cfg inventory [defaults] inventoryinventory remote_userdevops[privilege_escalation] becomeTrue become_methodsudo become_userroot become_ask_passFalse [database_dev] servera.lab.example.com[database_prod] serverb.lab.example.com[studentworkstation control-flow]$ cat playbook.yml --- - name: this is a first playhosts: database_devvars:mariadb_packages:- mariadb-server- python3-PyMySQLtasks: - name: install pkgyum:name: {{ item }}state: presentloop: {{ mariadb_packages }}- name: start db serviceservice:name: mariadbstate: startedenabled: true[studentworkstation control-flow]$ ansible-playbook playbook.yml [studentworkstation control-flow]$ ansible database_prod -m command -a cat /etc/redhat-release -u devops --become serverb.lab.example.com | CHANGED | rc0 Red Hat Enterprise Linux release 8.0 (Ootpa)[studentworkstation ~]$ lab control-flow finishhandlers练习 [studentworkstation ~]$ lab control-handlers start [studentworkstation ~]$ cd control-handlers/ [studentworkstation control-handlers]$ ls ansible.cfg configure_db.yml inventory[studentworkstation control-handlers]$ vim configure_db.yml [studentworkstation control-handlers]$ cat configure_db.yml --- - name: Installing MariaDB serverhosts: databasesvars:db_packages:- mariadb-server- python3-PyMySQLdb_service: mariadbresources_url: http://materials.example.com/labs/control-handlersconfig_file_url: {{ resources_url }}/my.cnf.standardconfig_file_dst: /etc/my.cnftasks:- name: install pkgyum:name: {{ db_packages }}state: presentnotify:- set db password- name: start serviceservice:name: {{ db_service }}state: startedenabled: true- name: download db cfgget_url:url: {{ config_file_url }}dest: {{ config_file_dst }}owner: mysqlgroup: mysqlforce: yesnotify:- restart db servicehandlers:- name: restart db serviceservice:name: {{ db_service }}state: restarted- name: set db passwordmysql_user:name: rootpassword: redhat[studentworkstation control-handlers]$ ansible-playbook configure_db.yml 假设如果你的tasks运行错误就不会通知handlers那么此时你在写之前就应该加上force_handlers: yes 即使错了也会通知handlers不会影响运行。 --- - hosts: all force_handlers: yes但是如果你忘记加了但是已经运行过playbook了那么你就要在要被通知的tasks手动加上changed_when: truetasks:- name: install pkgyum:name: {{ db_packages }}state: presentchanged_when: true # 让changed的状态改变就行notify:- set db password[studentworkstation ~]$ lab control-handlers finish错误控制的练习 [studentworkstation ~]$ lab control-errors start [studentworkstation control-errors]$ cat playbook.yml --- - name: testhosts: databasesvars:web_package: httpdb_package: mariadb-serverdb_service: mariadbtasks:- name: install httpd pkgyum:name: {{ web_package }}state: present- name: install mariadb-serveryum:name: {{ db_package }}state: present[studentworkstation control-errors]$ ansible-playbook playbook.yml # 运行后会报错# 加一个忽略错误的命令 [studentworkstation control-errors]$ cat playbook.yml --- - name: testhosts: databasesvars:web_package: httpdb_package: mariadb-serverdb_service: mariadbtasks:- name: install httpd pkgyum:name: {{ web_package }}state: presentignore_errors: yes # 忽略错误- name: install mariadb-serveryum:name: {{ db_package }}state: present[studentworkstation control-errors]$ ansible-playbook playbook.yml # 错误被跳过# 添加一个block --- - name: testhosts: databasesvars:web_package: httpdb_package: mariadb-serverdb_service: mariadbtasks:- name: add blockblock:- name: install httpd pkgyum:name: {{ web_package }}state: presentrescue:- name: install mariadb-serveryum:name: {{ db_package }}state: present[studentworkstation control-errors]$ ansible-playbook playbook.yml 当block里的东西运行失败了他还是会运行rescue的代码# 加了always如果block是对的那么rescue是不会运行的就直接运行always了 --- - name: testhosts: databasesvars:web_package: httpddb_package: mariadb-serverdb_service: mariadbtasks:- name: add blockblock:- name: install httpd pkgyum:name: {{ web_package }}state: presentrescue:- name: install mariadb-serveryum:name: {{ db_package }}state: presentalways:- name: add a alwaysservice:name: {{ db_service }}state: started[studentworkstation ~]$ lab control-errors finish
http://www.yayakq.cn/news/2558/

相关文章:

  • 网络推广教育机构论述搜索引擎优化的具体措施
  • 宁波网站推广方式怎么样郑州平面设计公司排行榜
  • 北京市保障性住房建设投资中心网站6短视频推广seo隐迅推专业
  • 宜宾网站建设费用做外贸到那个网站
  • 网站用户界面ui设计细节门户网站 移动端
  • 无锡电子商城网站建设做网站要多少的分辨率
  • 公司地址查询网站长尾词挖掘
  • 200做网站网页截屏快捷方式
  • 做网站需要了解什么茂名市城乡和住房建设局网站
  • 温州网站建设小程序电脑自带做网站的软件
  • 龙江建网站四川网站建设 湖南岚鸿
  • 郑州做网站推广哪家好ppt模板免费下载 素材教学
  • 合肥学校网站建设焦作市网站建设哪家好
  • 做宣传语的网站wordpress登录注册小工具
  • wordpress头部加导航北京seo网络推广
  • 怎么知道网站是某个公司做的今天的特大新闻有哪些
  • 建设部网站电话wordpress做推送
  • 代刷网站推广免费网络广告策划
  • 网站建立后怎么做推广wordpress 新用户邮件
  • 想更新公司网站怎么做制作网站流程图
  • 百度医院网站建设网站内容的设计与实现
  • 做电商什么素材网站好有客多小程序
  • 做网站和推广需要多少钱电子商务网站建设课程性质
  • 网站建设及管理使用情况汇报忻州做网站
  • 深圳网站建设怎么做网站开发答辩会问哪些问题
  • phpcms网站源码做暧暧视频免费视频中国网站
  • 物流的网站模板linux系统用wordpress
  • 贵州网站中企动力建设中国建设银行的网站首页
  • aspnet通讯录网站开发长春专用网站建设
  • 网站移动版怎么做电商公司组织架构