肥城网站网站建设idea的网站开发登录页面

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

肥城网站网站建设,idea的网站开发登录页面,公司微网站怎么建设,做网站要钱吗?目录 一、Ansible 的脚本 playbook 剧本1.1playbooks的组成 二、剧本编写实验2.1定义、引用变量2.2使用远程主机sudo切换用户2.3whenn条件判断2.4迭代 三、Templates 模板四、Tags模板 一、Ansible 的脚本 playbook 剧本 1.1playbooks的组成 #xff08;1#xff09;Tasks1Tasks任务即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 2Variables变量 3Templates模板 4Handlers处理器当changed状态条件满足时notify触发执行的操作 5Roles角色 二、剧本编写实验 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.1定义、引用变量
  • 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 test1.yaml -e usernamenginx #在命令行里定义变量2.2使用远程主机sudo切换用户
  • hosts: dbserversremote_user: zhangsan become: yes #2.6版本以后的参数之前是sudo意思为切换用户运行become_user: root #指定sudo用户为root 执行playbook时ansible-playbook test1.yml -k -K
    2.3whenn条件判断
  • name: three playhosts: allremote_user: roottasks:- name: create filefile: path/opt/abc.txt statetouchwhen: ansible_default_ipv4.address192.168.243.103 #通过facts收集的信息过滤出匹配的主机,when中的变量名字不需要手动加{{}}或 when: inventory_hostname 主机名ansible-playbook test2.yaml 2.4迭代 Ansible提供了很多种循环结构一般都命名为with_items作用等同于 loop 循环。
  • name: play1hosts: dbserversgather_facts: falsetasks: - name: create filefile:path: {{item}}state: touchwith_items: [ /opt/a, /opt/b, /opt/c, /opt/d ]- name: play2hosts: dbserversgather_facts: false vars:test:- /tmp/test1- /tmp/test2- /tmp/test3- /tmp/test4tasks: - name: create directoriesfile:path: {{item}}state: directorywith_items: {{test}}- name: play3hosts: dbserversgather_facts: falsetasks:- name: add usersuser: name{{item.name}} statepresent groups{{item.groups}}with_items:- name: test1groups: wheel- name: test2groups: root 或with_items:- {name: test1, groups: wheel}- {name: test2, groups: root}ansible-playbook test3.yaml三、Templates 模板 Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件可以看作是一个编译过的模板文件用来产生目标文本传递Python的变量给模板去替换模板中的标记。 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行修改 2.修改主机清单文件使用主机变量定义一个变量名相同而值不同的变量 vim /etc/ansible/hosts
    [webservers] 192.168.80.11 http_port192.168.80.11:80 server_namewww.accp.com:80 root_dir/etc/httpd/htdocs[dbservers] 192.168.80.12 http_port192.168.80.12:80 server_namewww.benet.com:80 root_dir/etc/httpd/htdocs 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}} staterestartedansible-playbook apache.yaml四、Tags模板 可以在一个playbook中为某个或某些任务定义“标签”在执行此playbook时通过ansible-playbook命令使用–tags选项能实现仅运行指定的tasks。 playbook还提供了一个特殊的tags为always。作用就是当使用always作为tags的task时无论执行哪一个tags时定义有always的tags都会执行。
  • name: serve playremote_user: roothosts: webserverstasks:- name: touch ddd,txtfile: path/opt/ddd.txt statetouchtags: #标签为ddd当命令tags标签为ddd或者没有标签才执行- ddd- name: touch 123.txtfile: path/opt/123.txt statetouchtags:- always #alwats表示都执行- name: touch abc.txtfile: path/opt/abc.txt statetouchtags:- aaa #同上