Ansible自动化安装Web服务器【实验笔记】

Ansible

一款自动化运维工具,基于Python开发,其中集合了众多运维工具的优点,如puppet,chef,func,fabric。

ansible是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每一位运维工程师必须掌握的技能之一。

ansible是基于paramiko开发的,基于模块化工作,本身没有批量部署的能力。具有部署能力的是ansible所运行的模块,ansible只提供一种框架。基于ssh远程主机通讯。

Apache

Apache就是一个网络服务器,可以用于托管网站、提供动态内容、代理和转发请求、监控和日志记录,以及自定义配置。

实验步骤

背景

首先配置Ansible,以便它可以与Web服务器应用程序进行通信。然后,创建一个行动手册,该手册将自动执行在Web服务器上安装Apache的过程。还可以创建一个自定义的行动手册,包含特定说明安装Apache。

所需资源

virtual box或VMWare

DEVASC虚拟机

实验

使用sudo systemctl start ssh命令启动ssh服务

配置Ansible

进入到~/labs/devnet-src/ansible文件下,使用vim命令更改host文件,在这里插入图片描述
将此代码写入到文件中

[webservers]
192.0.2.3 ansible_ssh_user=devasc ansible_ssh_pass=Cisco123!

在这里插入图片描述

证书devasc和Cisco123!是DEVASC虚拟机的管理员凭证,在本实验中使用IPv4地址是192.0.2.3,这是虚拟接口下虚拟机上的静态IPv4地址

vim ansible.cfg命令打开此文件下的ansible.cfg配置文件,并将下面代码写入

[defaults]
# Use local hosts file in this folder
inventory=./hosts 
# Don't worry about RSA Fingerprints
host_key_checking = False 
# Do not create retry files
retry_files_enabled = False 

ansible.cfg文件告诉Ansible在哪找到清单文件并设置某些默认参数

验证通信

验证与本地web服务器的通信

分别使用ansible webservers -m pingansible webservers -m command -a "/bin/echo hello world"来验证是否可以ping Web服务器,以及与网络服务器进行通信

在这里插入图片描述

在这里插入图片描述

创建Playbook

创建Ansible Playbook来实现服务器自动化安装

测试

创建playbook来测试网络服务器组:

在ansible-apache目录下创建一个使用vim test_apache_playbook.yaml命令创建一个名为test_apache_playbook.yaml文件,并进入到文件内

在这里插入图片描述

将下列yaml代码写入文本内

---
- hosts: webservers
  tasks:
    - name: run echo command
      command: /bin/echo hello world

在这里插入图片描述

ansible-playbook -v test_apache_playbook.yaml执行新创建的yaml文件

在这里插入图片描述

安装

在ansible-apache目录下创建一个使用vim install_apache_playbook.yaml命令创建一个名为install_apache_playbook.yaml文件,并进入到文件内

在这里插入图片描述

将下列yaml代码写入文本内,此playbook用于安装Apache服务器

---
- hosts: webservers
  become: yes
  tasks:
    - name: INSTALL APACHE2
      apt:
        name: apache2
        update_cache: yes
        state: latest
    - name: ENABLED MOD_REWRITE
      apache2_module:
        name: rewrite
        state: present
      notify:
        - RESTART APACHE2

  handlers:
    - name: RESTART APACHE2
      service:
        name: apache2
        state: restarted
  • hosts: webservers - 这是引用 hosts 清单文件中的 webservers 设备组。此行动手册将针对此组的所有设备运行。
  • become: yes - become关键字激活 sudo 命令执行,这将允许安装应用程序等任务。
  • apt:-apt模块用于管理 Linux 上的软件包和应用程序安装。
  • handlers: - handlers 类似于任务,但不会自动运行。它们由一个任务调用。请注意,任务 ENABLED MOD_REWRITE 会调用处理程序 RESTART APACHE2

使用ansible-playbook -v install_apache_playbook.yaml执行行动手册

在这里插入图片描述

执行成功!

如果遇到报错,直接访问Anisble-playbook安装Apache报错Failed to update apt cache

在这里插入图片描述

验证

命令sudo systemctl status apache2来查看状态
在这里插入图片描述

添加选项

为apache web服务器添加选项到Ansible playbook中;在生产环境中apache2默认安装通常是针对组织多需的特定功能进行自定义的。Ansible Playbook也可以帮助自动执行这些配置任务。

创建安装手册

vim创建install_apache_options_playbook.yaml文件

将下列代码加入文件中

---
- hosts: webservers
  become: yes
  tasks:
    - name: INSTALL APACHE2
      apt:
        name: apache2
        update_cache: yes
        state: latest
 
    - name: ENABLED MOD_REWRITE
      apache2_module:
        name: rewrite
        state: present
      notify:
        - RESTART APACHE2
 
    - name: APACHE2 LISTEN ON PORT 8081
      lineinfile:
        path: /etc/apache2/ports.conf
        regexp: "^Listen 80"
        line: "Listen 8081"
        state: present
      notify:
        - RESTART APACHE2
 
    - name: APACHE2 VIRTUALHOST ON PORT 8081
      lineinfile:
        path: /etc/apache2/sites-available/000-default.conf
        regexp: "^<VirtualHost \\*:80>"
        line: "<VirtualHost *:8081>"
        state: present
      notify:
        - RESTART APACHE2
 
  handlers:
    - name: RESTART APACHE2
      service:
        name: apache2
        state: restarted

利用此代码让服务器侦听端口从80改为8081

  • lineinfile模块,用于替换/etc/apache2/ports.conf和/etc/apache2/sites-available/000-default.conf文件中的现有行。

cat命令查看两个文件信息,可以看到服务器当前监听端口为80

在这里插入图片描述

执行install_apache_options_playbook.yaml文件

在这里插入图片描述

再次查看两个文件,可以观察到服务器的监听端口改为8081端口

在这里插入图片描述

打开虚拟机内置浏览器,输入服务器地址和指定端口号,可以看到成功访问到默认的Apache2网页

在这里插入图片描述

end

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值