aspx网站使用什么做的万网网站建设选哪个好
2026/1/12 4:39:55 网站建设 项目流程
aspx网站使用什么做的,万网网站建设选哪个好,外贸行业网站建设,wordpress mp4文章目录03-编写和运行Playbook实验环境Playbook 介绍Vim 编辑器设置Playbook 编写Playbook 示例YAML 注释YAML 单行字符串YAML 多行字符串YAML 字典YAML 列表Playbook 运行运行语法检查空运行Playbook 提权03-编写和运行Playbook 实验环境 [dyxcontroller ~]$ mkdir web [dy…文章目录03-编写和运行Playbook实验环境Playbook 介绍Vim 编辑器设置Playbook 编写Playbook 示例YAML 注释YAML 单行字符串YAML 多行字符串YAML 字典YAML 列表Playbook 运行运行语法检查空运行Playbook 提权03-编写和运行Playbook实验环境[dyxcontroller ~]$mkdirweb[dyxcontroller ~]$cdweb/[dyxcontroller web]$vimansible.cfg[dyxcontroller web]$catansible.cfg[defaults]remote_userdyxinventory./inventory[privilege_escalation]becometruebecome_userrootbecome_methodsudobecome_ask_passfalse[dyxcontroller web]$viminventory[dyxcontroller web]$catinventory node[1:4]Playbook 介绍ad hoc 命令可以作为一次性命令对一组主机运行一项简单的任务。不过若要真正发挥Ansible的能力需要使用功能 playbook。playbook 是一个文本文件其中包含由一个或多个按特定顺序运行的play组成的列表。play是针对清单中选定的主机运行的一组有序任务。play可以让您将一系列冗长而复杂的手动管理任务转变为可轻松重复的例程并且具有可预测性。在 playbook 中您可以将play内的任务序列保存为人类可读并可立即运行的形式。根据任务的编写方式任务本身记录了部署应用或基础架构所需的步骤。ad hoc 命令示例[dyxcontroller web]$ ansible -m user -anamenewbie uid4000 statepresentnode1 node1|CHANGED{ansible_facts:{discovered_interpreter_python:/usr/bin/python},changed:true,comment:,create_home:true,group:4000,home:/home/newbie,name:newbie,shell:/bin/bash,state:present,system:false,uid:4000}Playbooks以yaml格式编写通常以 yaml 和 yml 扩展名保存。改写成playbook[dyxcontroller web]$vimnewuser.yaml[dyxcontroller web]$ cat newuser.yaml----name:configure important user consistentlyhosts:node1tasks:-name:newbie exists with uid 4000user:name:newbieuid:4000state:present...测试[dyxcontroller web]$ ansible-playbook newuser.yaml PLAY[configure important user consistently]******************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[newbie exists with uid4000]****************************************************** ok:[node1]PLAY RECAP ****************************************************************************** node1:ok2changed0unreachable0failed0skipped0rescued0ignored0yaml格式只使用空格缩进对于空格的数量没有强制要求。基本规则同一级别的元素使用相同的缩进。对于子项目使用比父项目更多的缩进。增加空白行提高可读性。键值之间用:隔开:后面加个空格第一行必须---最后一行...可以省略Vim 编辑器设置如果使用vim编辑器设置vim环境便于编辑Playbooks。在$HOME/.vimrc文件中添加以下内容[dyxcontroller web]$vim~/.vimrc[dyxcontroller web]$cat~/.vimrcsetaits2效果“ai”即 “autoindex”表示自动缩进。“ts”即 “tabstop”表示tab键使用2个空格代替。autocmd FileType yam代表文件类型是yaml时自动执行“set ai ts2”。Playbook 编写Playbook 示例playbook.yaml 内容如下[dyxcontroller web]$ vim playbook.yaml[dyxcontroller web]$ cat playbook.yaml# yaml格式起始行一般不省略---# Playbook中第一个play# play具有属性namehostsbecometasks缩进一致# name属性用于简要描述play-name:Enable intranet services# hosts属性用于定义要在哪个受管理节点执行hosts:node2# tasks属性用于描述play中任务属性是列表格式tasks:# 第一个任务# 任务具有属性涵name和模块名等。# name属性用于简要描述任务-name:latest version of httpd and firewalld isntalledyum:name:-httpd-firewalldstate:latest-name:test html page is installedcopy:content:welcome dyx website!\ndest:/var/www/html/index.html-name:firewalld enabled and runningservice:name:firewalldenabled:yesstate:started-name:firewalld permits access to httpd servicefirewalld:service:httppermanent:yesstate:enabledimmediate:yes-name:httpd enabled and runningservice:name:httpdenabled:truestate:started[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[Enable intranet services]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[node2]TASK[latest version of httpd and firewalld isntalled]********************************** changed:[node2]TASK[test html page is installed]****************************************************** changed:[node2]TASK[firewalld enabled and running]**************************************************** ok:[node2]TASK[firewalld permits access to httpd service]**************************************** changed:[node2]TASK[httpd enabled and running]******************************************************** changed:[node2]PLAY RECAP ****************************************************************************** node2:ok6changed2unreachable0failed0skipped0rescued0ignored0[dyxcontroller web]$vimplaybook.yaml[dyxcontroller web]$catplaybook.yaml --- - name: Enable intranet services hosts: node2 tasks: - name: latest version of httpd and firewalld isntalled yum: name: - httpd - firewalld state: latest - name:testhtml page is installed copy: content:welcome dyx website!\ndest: /var/www/html/index.html - name: firewalld enabled and running service: name: firewalld enabled:yesstate: started - name: firewalld permits access to httpdservicefirewalld: service: http permanent:yesstate: enabled immediate:yes- name: httpd enabled and running service: name: httpd enabled:truestate: started - name:testintranet web server hosts: localhost become: no tasks: - name: connect to inteanet web server uri: url: http://node2 return_content:yesstatus_code:200...验证[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[Enable intranet services]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[node2]TASK[latest version of httpd and firewalld isntalled]********************************** ok:[node2]TASK[test html page is installed]****************************************************** ok:[node2]TASK[firewalld enabled and running]**************************************************** ok:[node2]TASK[firewalld permits access to httpd service]**************************************** ok:[node2]TASK[httpd enabled and running]******************************************************** ok:[node2]PLAY[test intranet web server]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[localhost]TASK[connect to inteanet web server]*************************************************** ok:[localhost]PLAY RECAP ****************************************************************************** localhost:ok2changed0unreachable0failed0skipped0rescued0ignored0node2:ok6changed0unreachable0failed0skipped0rescued0ignored0YAML 注释在 YAML中 编号或井号符号(#)右侧的所有内容都是注释。如果注释的左侧有内容 请在该编号符号的前面加一个空格。注释可用于提高可读性。示例# This is YAML commentSome data# This is also a YAML commentYAML 单行字符串YAML中的字符串通常不需要放在引号里即使字符串中包含空格。字符串也可以用双引号或单引号括起。this is a stringthis is another stringthis is yet another a stringYAML 多行字符串可以使用竖线(I)字符表示保留字符串中的换行字符。示例[dyxcontroller web]$vimplaybook.yaml[dyxcontroller web]$ cat playbook.yaml----name:test stringhosts:node1tasks:-name:test stringdebug:msg:|example compang 123 main stress aldivh dsi 8[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[test string]********************************************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[test string]********************************************************************** ok:[node1]{msg:example compang\n123 main stress\naldivh dsi 8\n}PLAY RECAP ****************************************************************************** node1:ok2changed0unreachable0failed0skipped0rescued0ignored0也可以使用大于号()字符表示换行字符。执行时换行符使用空格代替并且行内的引导空白将被删除。示例[dyxcontroller web]$ vim playbook.yaml[dyxcontroller web]$ cat playbook.yaml----name:test stringhosts:node1tasks:-name:test stringdebug:msg:example compang 123 main stress aldivh dsi 8[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[test string]********************************************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[test string]********************************************************************** ok:[node1]{msg:example compang 123 main stress aldivh dsi 8\n}PLAY RECAP ****************************************************************************** node1:ok2changed0unreachable0failed0skipped0rescued0ignored0这种方法通常用于将很长的字符串在空格字符处断行使它们跨占多行来提高可读性。不加[dyxcontroller web]$ vim playbook.yaml[dyxcontroller web]$ cat playbook.yaml----name:test stringhosts:node1tasks:-name:test stringdebug:msg:example compang 123 main stress aldivh dsi 8[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[test string]********************************************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[test string]********************************************************************** ok:[node1]{msg:example compang 123 main stress aldivh dsi 8}PLAY RECAP ****************************************************************************** node1:ok2changed0unreachable0failed0skipped0rescued0ignored0YAML 字典一组键值对的集合又称为映射mapping和哈希hashes。以缩进块的形式编写键值对集合如下方所示user属性是字典格式是多个键值对集合。user:name:laogaouid:1088state:absent字典也可以使用以花括号括起的内联块格式编写如下方所示user:{name:laogao,uid:1088,state:absent}大多数情形中应避免内联块格式其可读性较差。不过当playbook中包含角色列表时使用这种语法更加容易区分play中包含的角色和传递给角色的变量。某些 playbook 可能使用较旧的简写shorthand格式通过将模块的键值对放在与模块名称相同的行上来定义任务。示例-name:shorhand formuser:namelaogao uid1088 stateabsent普通格式-name:shorhand formuser:name:laogaouid:1088state:absent两者格式总结通常您应避免简写格式而使用普通格式。普通格式的行数较多更容易操作。任务的关键字垂直堆叠更容易区分。 阅读play时您的眼睛直接向下扫视左右运动较少。普通格式是原生的YAML现代文本编辑器中的语法突出显示工具可以识别简写形式则不支持。可能会在文档和他人提供的旧playbook中看到这种语法而且这种语法仍然可以发挥作用。YAML 列表一组按次序排列的值又称为序列sequence和数组array。以缩进块的形式编写的键值对集合如下方所示-name:latest version of httpd and firewalld installedyum:name:-httpd-firewalldstate:latest-name:test html page is installedcopy:content:Welcome to the example.com intranet!\ndest:/var/www/html/index.html以上有两个任务每个任务都是多个键值对描述。其中yum模块操作的软件包是一个简单的名称列表。内联格式name:[httpd, firewalld]尽量避免内联格式。Playbook 运行运行[dyxcontroller web]$vimplaybook.yaml---# Playbook中第一个play# play具有属性namehostsbecometasks缩进一致# name属性用于简要描述play-name:Enable intranet services# hosts属性用于定义要在哪个受管理节点执行hosts:node2# tasks属性用于描述play中任务属性是列表格式tasks:# 第一个任务# 任务具有属性涵name和模块名等。# name属性用于简要描述任务-name:latest version of httpd and firewalld isntalledyum:name:-httpd-firewalldstate:latest-name:test html page is installedcopy:content:welcome dyx website!\ndest:/var/www/html/index.html-name:firewalld enabled and runningservice:name:firewalldenabled:yesstate:started-name:firewalld permits access to httpd servicefirewalld:service:httppermanent:yesstate:enabledimmediate:yes-name:httpd enabled and runningservice:name:httpdenabled:truestate:started第一次执行[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[Enable intranet services]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[latest version of httpd and firewalld isntalled]********************************** changed:[node1]TASK[test html page is installed]****************************************************** changed:[node1]TASK[firewalld enabled and running]**************************************************** ok:[node1]TASK[firewalld permits access to httpd service]**************************************** changed:[node1]TASK[httpd enabled and running]******************************************************** changed:[node1]PLAY[test intranet web server]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[localhost]TASK[connect to inteanet web server]*************************************************** ok:[localhost]PLAY RECAP ****************************************************************************** localhost:ok2changed0unreachable0failed0skipped0rescued0ignored0node1:ok6changed4unreachable0failed0skipped0rescued0ignored0第二次执行剧本任务状态全是绿色。[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[Enable intranet services]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[latest version of httpd and firewalld isntalled]********************************** ok:[node1]TASK[test html page is installed]****************************************************** ok:[node1]TASK[firewalld enabled and running]**************************************************** ok:[node1]TASK[firewalld permits access to httpd service]**************************************** ok:[node1]TASK[httpd enabled and running]******************************************************** ok:[node1]PLAY[test intranet web server]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[localhost]TASK[connect to inteanet web server]*************************************************** ok:[localhost]PLAY RECAP ****************************************************************************** localhost:ok2changed0unreachable0failed0skipped0node1:ok6changed0unreachable0failed0skipped0语法检查选项–syntax-check只检查剧本语法不执行剧本。[dyxcontroller web]$ ansible-playbook playbook.yaml --syntax-check playbook: playbook.yaml空运行空运行是指模拟运行并不是真正执行。[dyxcontroller web]$ ansible-playbook playbook.yaml -C PLAY[Enable intranet services]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[latest version of httpd and firewalld isntalled]********************************** ok:[node1]TASK[test html page is installed]****************************************************** ok:[node1]TASK[firewalld enabled and running]**************************************************** ok:[node1]TASK[firewalld permits access to httpd service]**************************************** ok:[node1]TASK[httpd enabled and running]******************************************************** ok:[node1]PLAY[test intranet web server]********************************************************* TASK[Gathering Facts]****************************************************************** ok:[localhost]TASK[connect to inteanet web server]*************************************************** skipping:[localhost]PLAY RECAP ****************************************************************************** localhost:ok1changed0unreachable0failed0skipped1rescued0ignored0node1:ok6changed0unreachable0failed0skipped0rescued0ignored0提高输出详细程度-v显示任务结果。一般情况使用-v即可。-vv任务结果和任务配置都会显示。-vvv包含关于与受管主机连接的信息。-vvvv增加了连接插件相关的额外详细程度选项包括受管主机上用于执行脚本的用户以及所执行的脚本。Playbook 提权在playbook中指定此关键字将覆盖/etc/ansible/ansible.cfg文件中的设置特权升级属性remote_user指定ssh用户become启用或禁用特权升级become_method启用特权升级的方法become_user特殊升级的帐户实验环境注释ansbile.cfg的相关配置[dyxcontroller web]$vimansible.cfg[dyxcontroller web]$catansible.cfg[defaults]#remote_userdyxinventory./inventory[privilege_escalation]#becometrue#become_userroot#become_methodsudo#become_ask_passfalse安装httpd[dyxcontroller web]$vimplaybook.yaml----name:enable intranet servicehosts:node1tasks:-name:latest version of httpd and firewalld installdyum:name:-httpd-firewalldstate:latest验证提示需要root权限[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[enable intranet service]********************************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[latest version of httpd and firewalld installd]*********************************** fatal:[node1]: FAILED!{changed:true,changes:{installed:[httpd],updated:[]},msg:You need to be root to perform this command.\n,rc:1,results:[All packages providing firewalld are up to date,Loaded plugins: fastestmirror, langpacks\n]}PLAY RECAP ****************************************************************************** node1:ok1changed0unreachable0failed1skipped0rescued0ignored0[dyxcontroller web]$[dyxcontroller web]$vimplaybook.yaml----name:enable intranet servicehosts:node1remote_user:dyxbecome:truebecome_method:sudobecome_user:roottasks:-name:latest version of httpd and firewalld installdyum:name:-httpd-firewalldstate:latest验证[dyxcontroller web]$ ansible-playbook playbook.yaml PLAY[enable intranet service]********************************************************** TASK[Gathering Facts]****************************************************************** ok:[node1]TASK[latest version of httpd and firewalld installd]*********************************** changed:[node1]PLAY RECAP ****************************************************************************** node1:ok2changed1unreachable0failed0skipped0rescued0ignored0思考编辑playbook.yamlnode1,node2创建用户xiyangyang(uid2001)meiyangyanguid2002node3,node4创建用户tangsan(uid2003),xiaowu(uid2004)----name:create userhosts:node1,node2tasks:-name:create xiyangyanguser:name:xiyangyanguid:2001-name:create meiyangyanguser:name:meiyangyanguid:2002-name:create userhosts:node3,node4tasks:-name:create tangsanuser:name:tangsanuid:2003-name:create xiaowuuser:name:xiaowuuid:2004

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询