RHCE8.0实训:实施PLAYBOOK2

来自CloudWiki
112.38.217.45讨论2021年6月6日 (日) 04:59的版本
跳转至: 导航搜索

任务执行清单

在本实验中,您将使用playbook配置和执行对受管主机的管理任务。

成果

您应当能够通过构建并执行playbook,在受管主机上安装、配置和验证Web服务与数据库服 务的状态。

在你开始之前以普通用户身份登录控制节点。

确保控制节点上安装了正确的 Ansible配置文件和清单文件。

确保受管主机可在网络上访问。

实训步骤

配置文件

将目录更改到 0603 工作目录。

[student@workstation -]$ cd ~/0603

vi ansible.cfg:

[defaults]
inventory =hosts
host_key_checking = False
remote_user=maxin

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

vi hosts

[master]
localhost ansible_connection=local ansible_ssh_user=root
10.0.0.30 ansible_ssh_user=root
[slave]
10.0.0.40 ansible_ssh_user=root

编写脚本中第一个play

新建一个名为internet.yml的 playbook ,再添加所需的 条目,以开始名为Enable internet services的第一个play,并指定它适用的受管主机 slave, 添加一个条目来启用特权升级,再添加一个条目来启动任务 列表。

name: Enable internet services
hosts:slave
become: yes

添加下列条目以定义tasks列表的开头

tasks:

将必要的条目添加到 internet. yml 文件,以定 义一个任务来安装firewalldx httpd、mariadb-serveR php和php-mysqlnd软件包的最新版 本。

- name: latest version of all required packages installed
  yum:
    name:
      - firewalld
      - httpd
      - mariadb-server
      - php
      - php-mysqlnd
    state: latest

将所需的条目添加到internet. yml 文件中,以定 义防火墙配置任务。它们应确保firewalld服务处于enabled和running状态,并且允许 访问httpd服务。

- name: firewalld enabled and running
  service:
    name: firewalld
    enabled: true
    state: started
- name: firewalld permits http service
  firewalld:
    service: http
    permanent: true
    state: enabled
    immediate: yes

添加必要的任务,以确保httpd和mariadb服务处于enabled和running状态。


- name: httpd enabled and running
  service:
    name: httpd
    enabled: true
    state: started
- name: mariadb enabled and running
  service:
    name: mariadb
    enabled: true
    state: started

添加所需的条目,以定义用于生成测试用Web内容的最后一个任务。使用copy模块复制php测试页面到 受管 主机上的 /var/www/html/

- name: test php page is installed
  copy:
     content: "<html> <head><title>PHP 测试</title></head><body> <?php echo '<p>Hello World</p>';?> </body></html>"
     dest: /var/www/html/index.php

编写脚本中第二个play

在internet. yml 中,为要在控制节点上执行的任 务定义另一个play。此play将测试对Web服务器的访问,该服务器应在serverb受管主机 上运行。此play不要求特权升级,并将在localhost受管服务器上运行。

添加下列条目,使用名称Test internet web server注明第二个play的开头。

- name: Test internet web server

添加下列条目,注明该play适用于localhost受管主机。

hosts: localhost

将下面这行添加到hosts关键字的后面,为第二个play禁用特权升级。

become: no

在internet .yml 文件中添加一个条目,以定 义tasks列表的开头。

tasks:

添加一个任务,以利用uri模块从控制节点测试serverb ±运行的Web服务。检查返回状 态代码200。

- name: connect to internet web server
  uri:
     url: http://[受管主机ip或域名]
     status_code: 200

验证&测试

验证 internet. yml playbook 的语法。

ansible-playbook --syntax-check internet.yml

使用ansible-playbook命令运行playbooko通读生成的输出,确保所有任务都已成功完 成。

ansible-playbook  internet.yml