• 【ansible第三次作业】


    题目

    ansible自动化部署web服务
    项目(一)
    任务一:安装httpd,firewalld软件包
    任务二:创建网站资源文件
    任务三:启动httpd,firewalld
    任务四:添加防火墙规则
    项目(二)
    uri测试
    通过debug捕获打印测试结果

    1.安装部署ansible

    [student@workstation ~]$ lab data-variables start     #创建data-variables工作目录
    
    Setting up workstation for lab exercise work:
    
     · Verifying Ansible installation..............................  SUCCESS
     · Creating working directory..................................  SUCCESS
     . Creating Ansible files......................................  SUCCESS
    
    [student@workstation ~]$ ll                                       #查看是否创建成功
    total 0
    drwxr-xr-x. 2 student student 42 Sep  9 20:43 data-variables
    
    [student@workstation ~]$ cd data-variables/           #进入data-variables工作目录
    [student@workstation data-variables]$ ll                 #查看目录下文件
    total 8
    -rw-r--r--. 1 student student 99 Sep  9 20:43 ansible.cfg
    -rw-r--r--. 1 student student 37 Sep  9 20:43 inventory
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2.vim ./ansible.cfg

    [defaults]
    inventory=./inventory
    remote_user=root
    
    [privilege_escalation]
    become = true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.vim inventory

    [webserver]
    servera.lab.example.com
    
    • 1
    • 2

    4.剧本

    ---
    - name: config web server                                                      #项目名
      hosts: webserver                                                                  #匹配主机组
      vars:                                                                                     #定义变量
        web_pkg: httpd
        firewall_pkg: firewalld
        web_service: httpd
        firewall_service: firewalld
        python_pkg: python3-PyMySQL
        rule: http
      tasks:
        - name: install pkg
          yum:
            name:                                                                             #引用变量
              - "{{ web_pkg }}"
              - "{{ firewall_pkg }}"
              - "{{ python_pkg }}"
            state: installed
    
        - name: start firewalld                                                      #启动防火墙服务
          service:
            name: "{{ firewall_service }}"
            state: started
            enabled: true
    
     
    
      - name: start httpd                                                             #启动httpd服务
          service:
            name: "{{ web_service }}"
            state: started
            enabled: true
    
        - name: create file                                                              
          copy:
            content: "Example we content"                                   #网页显示信息
            dest: /var/www/html/index.html                                   #目标路径
    
     
    
      - name: firewall-rule                                                          #指定防火墙规则
          firewalld:
            service: "{{ rule }}"
            permanent: true
            immediate: true
            state: enabled
    
    - name: testing
      hosts: webserver
      tasks:
        - name: curl file
          uri:
            url: http://servera.lab.example.com
            status_code: 200
            return_content: yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    5.测试

    ansible-playbook -C playbook.yml
    
    PLAY [config web server] ************************************************************
    
    TASK [Gathering Facts] **************************************************************
    ok: [servera.lab.example.com]
    
    TASK [install pkg] ******************************************************************
    changed: [servera.lab.example.com]
    
    TASK [start firewalld] **************************************************************
    ok: [servera.lab.example.com]
    
    TASK [start httpd] ******************************************************************
    changed: [servera.lab.example.com]
    
    TASK [create file] ******************************************************************
    changed: [servera.lab.example.com]
    
    TASK [firewall-rule] ****************************************************************
    changed: [servera.lab.example.com]
    
    PLAY [testing] **********************************************************************
    
    TASK [Gathering Facts] **************************************************************
    ok: [servera.lab.example.com]
    
    TASK [curl file] ********************************************************************
    skipping: [servera.lab.example.com]
    
    PLAY RECAP **************************************************************************
    servera.lab.example.com    : ok=7    changed=4    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
  • 相关阅读:
    QSS属性大全
    Docker 入门到实战教程(一)介绍Docker
    MyBatisPlus-条件构造器/分页/多数据源/MyBatisX插件(生成代码)
    linux中如何查看mac地址
    Unity VideoPlayer 指定位置开始播放
    C++、C++-OpenCV、Python、Python-Numpy、MATLAB的除法取余方法总结
    极简实现任意版本 SwiftUI 中隐藏和显示系统底部横条(Home Indicator)
    Flutter创建工程
    Dart语言简介
    shell脚本(五)函数
  • 原文地址:https://blog.csdn.net/kouacbb/article/details/126799407