RHCE8.0实训:实施PLAYBOOK2
任务执行清单
在本实验中,您将使用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