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

建设银行信用卡中心网站首页济南网站建设优化

建设银行信用卡中心网站首页,济南网站建设优化,百度推广登陆网址,工厂erp管理系统软件playbook 一、playbook 的概述1. playbook 的概念2. playbook 的构成 二、playbook 的应用1. 安装 httpd 并启动2. 定义、引用变量3. 指定远程主机 sudo 切换用户4. when条件判断5. 迭代6. Templates 模块6.1 添加模板文件6.2 修改主机清单文件6.3 编写 playbook 7. tags 模块 … playbook 一、playbook 的概述1. playbook 的概念2. playbook 的构成 二、playbook 的应用1. 安装 httpd 并启动2. 定义、引用变量3. 指定远程主机 sudo 切换用户4. when条件判断5. 迭代6. Templates 模块6.1 添加模板文件6.2 修改主机清单文件6.3 编写 playbook 7. tags 模块 总结1. playbook 剧本 一、playbook 的概述 1. playbook 的概念 简单来说playbooks是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处且非常适合复杂应用的部署。 Playbooks 可用于声明配置更强大的地方在于playbooks可以编排有序的去执行过程甚至做到多组机器间来回有序的执行特别指定的步骤并且可以同步或异步的发起任务。 2. playbook 的构成 playbooks 本身由以下各部分组成: Tasks任务即通过 task 调用 ansible 的模块将多个操作组织在一个 playbook 中运行Variables变量emplates模板Handlers处理器当changed状态条件满足时notify触发执行的操作Roles角色。 二、playbook 的应用 1. 安装 httpd 并启动 #创建一个目录用来存放 playbooks 的文件 cd /etc/ansible/ mkdir playbooks#编写 playbooks 文件 vim test1.yaml --- #yaml文件以---开头以表明这是一个yaml文件可省略 - name: first play #定义一个play的名称可省略gather_facts: false #设置不进行facts信息收集这可以加快执行速度可省略hosts: webservers #指定要执行任务的被管理主机组如多个主机组用冒号分隔remote_user: root #指定被管理主机上执行任务的用户tasks: #定义任务列表任务列表中的各任务按次序逐个在hosts中指定的主机上执行- name: test connection #自定义任务名称ping: #使用 module: [options] 格式来定义一个任务- name: disable selinuxcommand: /sbin/setenforce 0 #command模块和shell模块无需使用keyvalue格式ignore_errors: True #如执行命令的返回值不为0就会报错tasks停止可使用ignore_errors忽略失败的任务- name: disable firewalldservice: namefirewalld statestopped #使用 module: options 格式来定义任务option使用keyvalue格式- name: install httpdyum: namehttpd statelatest- name: install configuration file for httpdcopy: src/opt/httpd.conf dest/etc/httpd/conf/httpd.conf #这里需要一个事先准备好的/opt/httpd.conf文件notify: restart httpd #如以上操作后为changed的状态时会通过notify指定的名称触发对应名称的handlers操作- name: start httpd serviceservice: enabledtrue namehttpd statestartedhandlers: #handlers中定义的就是任务此处handlers中的任务使用的是service模块- name: restart httpd #notify和handlers中任务的名称必须一致service: namehttpd staterestarted ##Ansible在执行完某个任务之后并不会立即去执行对应的handler而是在当前play中所有普通任务都执行完后再去执行handler这样的好处是可以多次触发notify但最后只执行一次对应的handler从而避免多次重启。#运行playbook ansible-playbook test1.yaml------------------------------------------------- #补充参数 -k–ask-pass用来交互输入ssh密码 -K-ask-become-pass用来交互输入sudo密码 -u指定用户 -------------------------------------------------ansible-playbook test1.yaml --syntax-check #检查yaml文件的语法是否正确 ansible-playbook test1.yaml --list-task #检查tasks任务 ansible-playbook test1.yaml --list-hosts #检查生效的主机 ansible-playbook test1.yaml --start-at-taskinstall httpd #指定从某个task开始运行2. 定义、引用变量 - name: second playhosts: dbserversremote_user: rootvars: #定义变量- groupname: mysql #格式为 key: value- username: nginxtasks:- name: create groupgroup: name{{groupname}} systemyes gid306 #使用 {{key}} 引用变量的值- name: create useruser: name{{username}} uid306 group{{groupname}} - name: copy filecopy: content{{ansible_default_ipv4}} dest/opt/vars.txt #在setup模块中可以获取facts变量信息ansible-playbook test2.yaml -e usernamenginx #在命令行里定义变量3. 指定远程主机 sudo 切换用户 - name: third playhosts: dbserversremote_user: nginx become: yes #2.6版本以后的参数之前是sudo意思为切换用户运行become_user: root #指定sudo用户为root#目标主机添加用户并提权 vim /etc/sudoers nginx ALLALL#运行playbook ansible-playbook test3.yml -k -K 4. when条件判断 在Ansible中提供的唯一一个通用的条件判断是when指令当when指令的值为true时则该任务执行否则不执行该任务。 when一个比较常见的应用场景是实现跳过某个主机不执行任务或者只有满足条件的主机执行任务。 vim test4.yaml --- - hosts: allremote_user: roottasks:- name: shutdown host command: /sbin/shutdown -r nowwhen: ansible_default_ipv4.address 192.168.145.30 #when指令中的变量名不需要手动加上 {{}} 或 when: inventory_hostname 主机名#运行playbook ansible-playbook test4.yaml5. 迭代 Ansible提供了很多种循环结构一般都命名为with_items作用等同于 loop 循环。 vim test5.yaml --- - name: play1hosts: dbserversgather_facts: falsetasks: - name: create filefile:path: {{item}}state: touchwith_items: [ /opt/a, /opt/b, /opt/c, /opt/d ]#运行playbook ansible-playbook test5.yaml- name: play2hosts: dbserversgather_facts: false vars:test:- /tmp/test1- /tmp/test2- /tmp/test3- /tmp/test4tasks: - name: create directoriesfile:path: {{item}}state: directorywith_items: {{test}}#运行playbook ansible-playbook test5.yaml6. Templates 模块 Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件可以看作是一个编译过的模板文件用来产生目标文本传递Python的变量给模板去替换模板中的标记。 6.1 添加模板文件 #先准备一个以 .j2 为后缀的 template 模板文件设置引用的变量。 cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2vim /opt/httpd.conf.j2 Listen {{http_port}} #42行修改 ServerName {{server_name}} #95行修改 DocumentRoot {{root_dir}} #119行修改6.2 修改主机清单文件 #修改主机清单文件使用主机变量定义一个变量名相同而值不同的变量 vim /etc/ansible/hosts [webservers] 192.168.145.30 http_port192.168.145.30:80 server_namewww.accp.com:80 root_dir/etc/httpd/htdocs[dbservers] 192.168.145.45 http_port192.168.145.45:80 server_namewww.benet.com:80 root_dir/etc/httpd/htdocs6.3 编写 playbook vim apache.yaml --- - hosts: allremote_user: rootvars:- package: httpd- service: httpdtasks:- name: install httpd packageyum: name{{package}} statelatest- name: install configure filetemplate: src/opt/httpd.conf.j2 dest/etc/httpd/conf/httpd.conf #使用template模板notify:- restart httpd- name: create root dirfile: path/etc/httpd/htdocs statedirectory- name: start httpd serverservice: name{{service}} enabledtrue statestartedhandlers:- name: restart httpdservice: name{{service}} staterestarted#运行playbook ansible-playbook apache.yaml7. tags 模块 可以在一个playbook中为某个或某些任务定义“标签”在执行此playbook时通过ansible-playbook命令使用–tags选项能实现仅运行指定的tasks。 playbook还提供了一个特殊的tags为always。作用就是当使用always作为tags的task时无论执行哪一个tags时定义有always的tags都会执行。 vim webhosts.yaml --- - hosts: webserversremote_user: roottasks:- name: Copy hosts filecopy: src/etc/hosts dest/opt/hoststags:- only #可自定义- name: touch filefile: path/opt/testhost statetouchtags:- always #表示始终要运行的代码#运行playbook ansible-playbook webhosts.yaml --tagsonlyvim dbhosts.yaml --- - hosts: dbserversremote_user: roottasks:- name: Copy hosts filecopy: src/etc/hosts dest/opt/hoststags:- only- name: touch filefile: path/opt/testhost statetouch#运行playbook ansible-playbook dbhosts.yaml --tagsonly#分别去两台被管理主机上去查看文件创建情况总结 1. playbook 剧本 vim xxx.ymal - name: #指定play名称hosts: #指定主机组remote_user: #执行用户gather_facts: treu/false #是否收集远程主机facts信息vars: #定义变量tasks: #定义任务列表- name: #定义任务名称模块: #定义任务使用的模块和参数with_items: #定义循环when: #定义判断条件( ! )true则执行任务否则不执行任务ignore_errors: true #忽略任务失败notify: #定义task任务changed状态时触发的任务名tags: #指定标签ansible-playbook --tags 仅执行拥有指定tags标签的任务always标签总会执行handlers: #定义notify触发的任务列表task任务 模块语法格式#横向格式 模块名参数选项1值 参数选项2{{变量名}} ...#纵向格式 模块名参数选项1: 值参数选项2: {{变量名}}...with_items 和 变量 的语法格式 #横向格式 with_items: [值1,值2,值3] #纵向格式: with_items: - 值1 - 值2 - 值3 ---------------------------------------------- 值为对象键值对字段)时: #横向格式 with_items : - { key1 : value1, key2 : value2, ... } - { key1 : value3, key2 : value4, ... } #纵向格式: with_items: - key1: value1key2: value2 - key1: value3key2: value4
http://www.pierceye.com/news/201884/

相关文章:

  • 定制 网站天津做网站要多少钱
  • 免费做问卷的网站网站建设 好发信息网
  • 网站职能建设论文网页跳转链接怎么制作
  • 专题网站开发工具有哪些wordpress迁移500
  • 酒泉网站建设费用磁力搜索引擎不死鸟
  • 有网站是做水果原产地代发的吗临沂哪家做网站最好
  • 网站建设的背景wordpress htaccess
  • 如何在百度上注册自己的网站郓城做网站哪家好
  • 企业电子商务网站建设总结安徽建设工程信息网查询平台公司
  • 推荐常州微信网站建设做外汇看的网站
  • 网站页面优化方案网页设计培训费用多少
  • 落寞文学网单本多本小说wordpress主题哈尔滨网站优化指导
  • 网站域名使用费用网站在vps能访问 在本地访问不了
  • wordpress可以做成企业站吗一个域名可以建设几个网站
  • 企业网站备案需要什么资料工装装饰公司
  • 网站建设精美模板下载邢台165信息交友
  • 普陀区建设工程质检网站网站关键词优化排名
  • 云服务器多网站解析企业网站打不开了
  • 搭建flv视频网站如何注册域名步骤
  • 平面设计公司网站单页模板
  • 网站模板 代码免费建设部网站有项目经理资质查询系统
  • 网站建设注意哪些方面wordpress 做手机站
  • 淄博网站制作定制推广网站程序源代码
  • 二手房地产中介网站建设wordpress改背景图片
  • 可以自己做安卓app的网站Wordpress会员插件出错
  • 做网站优化有前景吗可信网站验证服务中心
  • 韩国设计欣赏网站天津工程建设网官方网站
  • 微网站建设多少钱网站空间管理
  • 济南网站制作定制公司wordpress重新安装主题
  • python 网站开发教程怎么做网站跳转