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

新闻客户端网站开发网站做描本好处

新闻客户端网站开发,网站做描本好处,网站设计的素材,网络营销课程设计计划书小阿轩yx-案例#xff1a;Ansible剧本文件实践 Playbook 介绍 什么是 playbook playbook 顾名思义#xff0c;即剧本#xff0c;现实生活中演员按照剧本表演在 ansible 中#xff0c;由被控计算机表演#xff0c;进行安装#xff0c;部署应用#xff0c;提供对外的服…小阿轩yx-案例Ansible剧本文件实践 Playbook 介绍 什么是 playbook playbook 顾名思义即剧本现实生活中演员按照剧本表演在 ansible 中由被控计算机表演进行安装部署应用提供对外的服务等以及组织计算机处理各种各样的事情。playbook 是 ansible 用于配置部署和管理节点的剧本通过 playbook 的详细描述执行其中的一些列 tasks可以让远端的主机达到预期的状态。playbook 就像 ansible 控制器给被控节点列出的一系列 to-do-list而且被控节点必须要完成。 Ansible play 使用场景 执行一些简单的任务使用 ad-hoc 命令可以方便的解决问题但有时一个设施过于复杂需要大量的操作的时执行的 ad-hoc 命令是不合适的这时候最好使用 playbook。就像执行 shell 命令与写 shell 脚本一样也可以理解为批处理任务不过 playbook 有自己的语法格式使用 playbook 可以方便的重复使用这些代码可以移植到不同的机器上面像函数一样最大化的利用代码。使用 Ansible 的过程中会发现处理的大部分操作都是编写playbook。可以把常见的应用都编写为 playbook之后管理服务器会变得很简单。 Playbook 的组成 由一个或多个 “play” 组成的列表 主要功能 通过将 task 定义好的角色归并为组进行统一管理 也就是通过 Task 调用 Ansible 的模板将多个 “play” 组织在一个 Playbook 中运行 Playbook 本身由下面几部分组成 Tasks任务即调用模块完成的某操作Variables变量Templates模板Handlers处理器某条件满足时触发执行的操作Roles角色。 恢复上一章 Ansible 部署的快照 Playbook 的简单示例 [rootansible-node1 ~]# vi a.yml --- - hosts: webremote user:roottasks :- name: create useruser:name: zhangsanpassword: {{ aptech | password_hash(sha512) }}state: presenttags:- CCC ... 执行 playbook进行语法检查 [rootansible-node1 ~]# ansible-playbook --syntax-check a.yml 预测试 [rootansible-node1 ~]# ansible-playbook -C a.ym1 列出主机 [rootansible-node1 ~]# ansible-playbook --list-hosts a.yml 列出任务 [rootansible-node1 ~]# ansible-playbook --list-tasks a.yml 列出标签 [rootansible-node1 ~]# ansible-playbook --list-tags a.yml 执行任务 [rootansible-node1 ~]# ansible-playbook a.yml Hosts 和 Users 介绍 Playbook 的设计目的 为了让某个或某些主机以某个用户身份去执行完成相应的任务。 用于指定要执行指定任务的主机用 hosts 定义可以是一个也可以是由冒号分隔的多个主机组;用于指定被管理主机上执行任务的用户用 remote user 来定义 如示例所示 - hosts: webremote_user: zhangsan remote_user 也可定义指定用户通过 sudo 的方法在被管理主机上运行指令 甚至可以在使用sudo 时用 sudo user 指定 sudo 切换的用户。 [rootansible-node1 ~]# vim b.yaml --- - hosts: webremote_user: zhangsantasks:- name: test connectionping: ... 远程连接拷贝 [rootansible-node1 ~]# ssh-copy-id zhangsan192.168.10.102 执行 [rootansible-node1 ~]# ansible-playbook b.yaml 任务列表和 action 介绍 “Play” 的主体是任务列表Tasks list。任务列表中的任务按照次序逐个在 hosts 中指定的所有主机上执行在顺序执行这些任务时如果发生错误会将所有已执行任务回滚。因此需要在更正 Playbook 中的错误后重新执行这些任务。 Task 的任务 按照指定的参数去执行模块。每个 task 使用 name 输出 Playbook 的运行结果一般输出内容为描述该任务执行的步骤。如果没有提供将输出 action 的运行结果。定义 task 的格式可以用 “action:module options” 或 “module:options” 都可其中后者可以实现向后兼容。如果 action 的内容过多可在行首使用空白字符进行换行。 [rootansible-node1 ~]# vi a.yml --- - hosts: webremote_user: roottasks:- name: create usenuser:name: zhangsanpassword: {{ aptech | password_hash(sha512) }}state: presenttags: - hosts: dbremote_user: roottasks:- name: copy file to webcopy: src/etc/passwd dest/opttags:- ddd ... - hosts: db  remote_user: root  tasks:    - name: copy file to web      copy: src/etc/passwd dest/opt      tags:      - ddd 执行 [rootansible-node1 ~]# ansible-playbook a.yml 如果多次执行修改的 Playbook 时涉及到一些没有变化的代码可以使用 tages 让用户选择跳过没有变化代码只运行 Playbook 中发生变化的部分代码。可以在 Paybook 中为某个或某些任务定义 “标签”在执行此 Playbook 时通过 ansible-playbook 命令的 --tags 选项能实现仅运行指定的 tasks 而非所有的 tasks。 Handlers 介绍 Handlers 用于当关注的资源发生变化时所采取的操作。在 notify 中列出的操作便称为 handler也就是 notify 中需要调用 handler 中定义的操作。而 notify 这个动作用于在每个 “play” 的最后被触发仅在所有的变化发生完成后一次性地执行指定操作。 拷贝模板文件为 /etc/foo.conf 文件时重新启动 memcached 和 apache 服务 创建 conf 目录 [rootansible-node1 ~]# mkdir conf 安装 httpd [rootansible-node1 ~]# yum -y install httpd 拷贝文件到指定目录下 [rootansible-node1 ~]# cp /etc/httpd/conf/httpd.conf conf 修改配置文件 [rootansible-node1 ~]# vim conf/httpd.conf Listen 8080 //修改端口号 编写配置文件  [rootansible-node1 ~]# vim a.yml - host: webremote_user: roottasks:- name: install httpd packageyum: namehttpd statelatest- name: install configuration file or httpdcopy: src/root/conf/httpd.conf dest/etc/httpd/conf/httpd.conf- name: start httpd serviceservice: enabledtrue namehttpd statestarted 执行 [rootansible-node1 ~]# ansible-playbook a.yml 登录被管理主机 ansible-node2 [rootansible-node2 ~]# rpm -qa httpd 查看执行结果 [rootansible-node2 ~]# grep Listen /etc/httpd/conf/httpd.conf | grep -v # 查看状态 [rootansible-node2 ~]# systemctl status httpd 设置 handlers 如果配置文件有改动 如Apache 端口号改变则需要定义 notify 和 handlers触发更新相关执行操作。 修改端口号 [rootansible-node1 ~]# vim conf/httpd.conf Listen 808 编写文件 [rootansible-node1 ~]# vim b.yml --- - hosts: webremote_user: roottasks:- name: change portcopy: src/root/conf/httpd.conf dest/etc/httpd/conf/httpd.confnotify:- restart httpd serverhandlers:- name: restart httpd serverservice: namehttpd staterestarted ... 执行 [rootansible-node1 ~]# ansible-playbook b.yml node2 上要关闭 selinux否则同步配置会出错 登录被管理主机 ansible-node2 进行查看 [rootansible-node2 ~]# netstat -anpt | grep httpd Templates 介绍 Jinja 是基于 Python 的模板引擎。Template 类似 Jinja 的另一个重要组件可以看作是一个编译过的模板文件。用来产生目标文本传递 Python 的变量给模板去替换模板中的标记。 创建 templates 目录 [rootansible-node1 ~]# mkdir templates 拷贝文件到指定目录下 [rootansible-node1 ~]# cp conf/httpd.conf templates/httpd.conf.j2 创建模板文件 [rootansible-node1 ~]# vim templates/httpd.conf.j2 Listen {{ http_port }} ServerName {{ ansible_fqdn }} 为远程主机添加变量 [rootansible-node1 ~]# vim /etc/ansible/hosts [web] 192.168.10.102 http_port8888 [db] 192.168.10.103 http_port8888 编写 playbook 文件 [rootansible-node1 ~]# vim apache.yml - hosts: webremote_user: rootvars:- package: httpd- service: httpdtasks:- name: install httpd packageyum: name{{ package }} statelatest- name: install configuration file for httpdtemplate: src/root/templates/httpd.conf,i2 dest/etc/httpd/conf/httpd.confnotify:- restart httpd- name: start httpd serviceservice: enabledtrue name{{ service }} statestartedhandlers:- name: restart httpdservice: name{{ service }} staterestarted - restart httpd- name: restart httpd 执行 [rootansible-node1 ~]# ansible-playbook apache.yml 登录被管理主机 ansible-node2 执行查看命令 [rootansible-node2 ~]# grep -i listen /etc/httpd/conf/httpd.conf | grep -v # [rootansible-node2 ~]# grep -i servername /etc/httpd/conf/httpd.conf | grep -v # Roles 介绍 什么是 Roles Ansible 为了层次化、结构化地组织 Playbook使用了角色roles可以根据层次结构自动装载变量文件、tasks 以及 handlers 等。只需要在 Playbook 中使用 include 指令便可使用 roles。 简单来讲 roles 就是分别将变量、文件、任务、模块及处理器设置于单独的目录中便捷地使用它们。 利用 Roles 部署 mariadb 被管理主机配置 yum 源 配置数据库角色 [rootnode1 ~]# mkdir -pv /etc/ansible/roles/mariadb/{files,tasks,handlers} mkdir: 已创建目录 /etc/ansible/roles/mariadb mkdir: 已创建目录 /etc/ansible/roles/mariadb/files mkdir: 已创建目录 /etc/ansible/roles/mariadb/tasks mkdir: 已创建目录 /etc/ansible/roles/mariadb/handlers 进入 tasks 目录 [rootnode1 ~]# cd /etc/ansible/roles/mariadb/tasks/ 编写主文件 [rootnodel tasks]# vi main.yml --- - name: install mariadbyum: namemariadb-server statepresent - name: install MySOL-pythonyum: nameMySOL-python statepresent - name: move config mariadbshell: [ -e /etc/my.cnf ] mv /etc/my.cnf /etc/my.cnf.bak - name: provide a new config filecopy: srcmy.cnf dest/etc/my.cnf - name: reload mariadbshell: systemctl restart mariadb - name: create database testdbshell: mysql -u roote -e create database testdb;grant all on testdb.* to test192.168.10.% identified by test123;flush privileges;notify:- restart mariadb ... 切换至 handlers 目录 [rootnode1 tasks]# cd /etc/ansible/roles/mariadb/handlers 编写触发器文件 [rootlocalhost handlers]# vi main.yml --- - name:restart mariadbservice: namemariadb staterestarted ... 切换至 files 目录 [rootnodel tasks]# cd /etc/ansible/roles/mariadb/files 查看 [rootnode1 files]# ls my.cnf ##将编辑好的 my.cnf 文件拷贝在此处 切换至 ansible 目录 [rootnode1 files]# cd /etc/ansible 编写角色文件 [rootnodel ansible]# vi mariadb.yml --- - hosts: dbremote_user: rootroles:- mariadb ... 测试角色文件 [rootnodel ansible]# ansible-playbook --syntax-check mariadb.yml 执行 yml 文件 [rootnodel ansible]# ansible-playbook mariadb.yml 检查远程服务器上数据库 查看数据库信息看看有没有创建制定的数据库 利用 Ansible 管理数据库 用 ansible 查看数据库 [rootlocalhost ~]# ansible db -m shell -a mysql -u root -e show databases; 192.168.10.103 | SUCCESS Database information_schema mysql performance_schema test testdb 创建账户并授权 [rootlocalhost ~]# ansible db -m yum -a nameMySQL-python statepresent [rootlocalhost ~]# ansible db -m mysql_user -a namezhangsan passwordpwd123 host192.168.10.% priv*.*:ALL [rootlocalhost ~]# ansible db -m mysql_user -a namelisi passwordpwd123 priv*.*:ALL 张三能够远程登录但李四不能要想使用 mysql_user 模块需要在客户端安装MySQL-python安装时注意大小写 为老用户授权语法和创建用户并授权的语法是相同的 [rootlocalhost ~]# ansible db -m mysql_user -a nameroot passwordpwd123 host192.168.10.% priv*.*:ALL 小阿轩yx-案例Ansible剧本文件实践
http://www.dnsts.com.cn/news/35746.html

相关文章:

  • mini主机做网站服务器网站为什么做等保
  • 可以做外链网站微信公众官网登录入口
  • 青岛万维网站设计成都设计公司排行榜
  • 做软件跟做网站哪个难wordpress 模板速度
  • 微网站做下载链接做抽纸行业网站
  • 大美工设计网站官网广东专业网站建设公司
  • 网页设计与网站制作知识框架什么是建站
  • 怎么做网站搜索引擎吕梁营销型网站建设费用
  • 网站开发济南招聘最新楼盘价格走势图
  • 设计方案格式模板范文成都自动seo
  • 连云港网站建设东莞商城网站建设价格
  • 查询系统网站模板aspnet网站开发pdf
  • 在郑州网站建设汕头市住房和城乡建设局
  • 微信做淘宝客网站天元建设集团有限公司2021年产值
  • 免费推广公司的网站做网站咋赚钱
  • 下载免费网站模板下载活动推广方案策划
  • 百度收录网站排名wordpress外贸同步插件
  • 2008服务器网站免费的黄冈网站有哪些下载软件
  • 自字网站建设教程怎样查看网站备案号
  • 做门户网站需要什么淄博易宝网站建设
  • 网站建设优化两千字闵行区核酸检测点
  • 海口手机建站模板湖南网站建设kaodezhu
  • 瓯海住房与城乡建设局网站flash 3d 网站源码
  • 南京网站优化公司营销培训课程2022
  • 正规的扬中网站建设厦门市住宅建设办公室网站
  • 南宁市网站维护与推广公司2345网址导航开创中国
  • 横岗网站设计企业自己建网站怎么建
  • 网页设计与网站建设中的热点是什么申请个人网站怎么申请
  • 做的好看的pc端网站网页设计版权信息代码
  • seo怎么做网站排名建设网银怎么提高转账限额