• 利用ansbile部署lamp并部署Discuz(非分布式)


    目录

    一、实验准备

    二、设置ansbile的hosts文件

    三、在192.168.115.148上完成相关准备

    上传Discuz_X3.3_SC_UTF8.zip

    配置本地源、确保我们的sr0挂载后可以使用

    四、编写roles

    创建目录

    编写http的main.yml

    编写mysql的main.yml

    编写phpmain.yml

    编写Discuz的main.yml

    编写playbook

    五、执行


    一、实验准备

    192.168.115.148:ansbile

    192.168.115.149

    192.168.115.151

    设置防火墙、selinux

    systemctl stop firewalld

    setenforce 0

    二、设置ansbile的hosts文件

    1. [group]
    2. 192.168.115.148
    3. 192.168.115.149
    4. 192.168.115.151

    三、在192.168.115.148上完成相关准备

    上传Discuz_X3.3_SC_UTF8.zip

    配置本地源、确保我们的sr0挂载后可以使用
    1. vim /etc/local.repo
    2. [local]
    3. name=local
    4. baseurl=file:///mnt
    5. enabled=1
    6. gpgcheck=0

    四、编写roles

    创建目录
    1. cd /etc/ansible/roles/
    2. mkdir -p {httpd,mysql,php,Discuz}/{files,tasks,handlers,templates,vars,meta}
    3. touch {httpd,mysql,php,Discuz}/{tasks,handlers,vars,meta}/main.yml
    4. tree
    5. .
    6. ├── Discuz
    7. │   ├── files
    8. │   ├── handlers
    9. │   │   └── main.yml
    10. │   ├── meta
    11. │   ├── tasks
    12. │   │   └── main.yml
    13. │   ├── templates
    14. │   └── vars
    15. ├── http
    16. │   ├── files
    17. │   ├── handlers
    18. │   ├── meta
    19. │   ├── tasks
    20. │   │   └── main.yml
    21. │   ├── templates
    22. │   └── vars
    23. ├── mysql
    24. │   ├── files
    25. │   ├── handlers
    26. │   ├── meta
    27. │   ├── tasks
    28. │   │   └── main.yml
    29. │   ├── templates
    30. │   └── vars
    31. └── php
    32. ├── files
    33. ├── handlers
    34. ├── meta
    35. ├── tasks
    36. │   └── main.yml
    37. ├── templates
    38. └── vars
    编写http的main.yml
    1. vim /ect/ansbile/roles/http/tasks/main.yml
    2. ---
    3. - name: 删除原来的yum源
    4. shell: rm -rf /etc/yum.repos.d/*
    5. - name: 分发本地源文件
    6. copy: src=/etc/local.repo dest=/etc/yum.repos.d/
    7. - name: 挂载本地sr0光盘
    8. shell: mount /dev/sr0 /mnt
    9. - name: 安装http服务
    10. yum: name=httpd state=present
    11. - name: 启动httpd服务,并设为开机自启
    12. service: name=httpd state=started enabled=yes
    13. - name: 删除httpd默认的访问网页
    14. shell: rm -rf /var/www/html/*
    编写mysql的main.yml
    1. vim /etc/ansible/roles/mysql/tasks/main.yml
    2. ---
    3. - name: 安装mysql
    4. shell: yum -y install mariadb mariadb-server
    5. - name: 启动mariadb设为开机自启
    6. shell: systemctl start mariadb && systemctl enable mariadb
    7. - name: 创建数据库hy
    8. shell: mysql -e 'create database hy;'
    9. - name: 创建用户qzh
    10. shell: mysql -e 'create user"qzh"@"localhosr" identified by "123.com";'
    11. - name: 为用户qzh授权hy库中的所有权限
    12. shell: mysql -e 'grant all privileges on hy.* to "qzh"@"localhost";'
    编写phpmain.yml
    1. vim /etc/ansible/roles/php/tasks/main.yml
    2. ---
    3. - name: 安装php环境/依赖
    4. yum: name=php,php-gd,php-ldap,php-odbc,php-pear,php-xml,php-xmlrpc,php-mbstring,php-snmp,php-soap,curl,curl-devel,php-bcmath,php-mysql state=present
    编写Discuz的main.yml
    1. vim /etc/ansible/roles/Discuz/tasks/main.yml
    2. ---
    3. - name: 分发论坛文件
    4. copy: src=/Discuz_X3.3_SC_UTF8.zip dest=/opt
    5. - name: 安装zip解压工具
    6. yum: name=unzip state=present
    7. - name: 解压论坛
    8. shell: cd /opt && unzip Discuz_X3.3_SC_UTF8.zip
    9. - name: 移动论坛文件
    10. shell: mv /opt/upload/* /var/www/html
    11. - name: 修改属主为Apache
    12. shell: chown -R apache /var/www/html/*
    13. notify: restart httpd
    编写playbook
    1. vim /etc/ansible/lamp.yml
    2. ---
    3. - hosts: group
    4. remote_user: root
    5. roles:
    6. - http
    7. - mysql
    8. - php
    9. - Discuz

    五、执行

    ansible-playbook /etc/ansible/lamp.yml

  • 相关阅读:
    linux yum源被禁用,yum源管理
    11.19 - 每日一题 - 408
    如何做出有价值的知识管理文档?
    有没有关于教育技术学的论文选题参考?
    淘宝/天猫、1688、京东、抖音按图搜索淘宝商品(拍立淘)API接口(参数说明值)
    C++二级题目6
    MySQL中比较运算符的使用
    Java设计模式-抽象工厂模式
    webpack基础
    Spring bean到底是如何创建的?(上)
  • 原文地址:https://blog.csdn.net/2302_78534730/article/details/132802639