码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux之ansible(使用角色部署http服务)


    目录

    使用角色完成http服务部署

    1)创建目录

    # 创建需要用到的目录

    或者 ansible-galaxy init httpd

    2)变量文件准备 vars/main.yml

    3)配置文件模板准备 templates/httpd.conf.j2

    # 进行一些修改,调用上面定义的变量

    4)任务剧本编写,创建用户、创建组、安装软件、配置、启动等

    # 创建组的 task

    # 创建用户的 task

    # 安装软件的 task

    # 配置软件的 task

    # 启动软件的 task

    # 编写 main.yml,将上面的这些 task 引入进来

    5)编写重启 httpd 的 handlers, handlers/main.yml

    # 这里的名字需要和 task 中的 notify 保持一致

    6)编写主的 httpd_roles.yml 文件调用 httpd 角色

    - role: httpd #指定角色名称

    7)整体的一个目录结构查看


    使用角色完成http服务部署

     通过 ansible roles 安装配置 httpd 服务,此处的 roles 使用默认的路径/etc/ansibl
    e/roles

    1)创建目录

    [root@ansible ~]# cd /etc/ansible/roles/

    # 创建需要用到的目录

    [root@ansible roles]# mkdir -p httpd/{handlers,tasks,templates,vars}

    或者 ansible-galaxy init httpd


    初始化 httpd 角色,注意需要在 roles 目录下执行,并且更改 ansible.cfg 文件更改 r
    oles-path 路径可以识别到自创建的角色。

    1. [root@ansible roles]# cd httpd/
    2. [root@ansible httpd]# tree .
    3. .
    4. ├── handlers
    5. ├── tasks
    6. ├── templates
    7. └── vars
    8. 4 directories, 0 file

    2)变量文件准备 vars/main.yml

    1. [root@ansible httpd]# vim vars/main.yml
    2. portnum: 8909
    3. username: www
    4. groupname: www

    3)配置文件模板准备 templates/httpd.conf.j2

    1. # copy 一个本地的配置文件放在 templates/下并已 j2 为后缀
    2. [root@ansible httpd]# cp /etc/httpd/conf/httpd.conf templates/httpd.con
    3. f.j2

    # 进行一些修改,调用上面定义的变量

    1. [root@ansible httpd]# vim templates/httpd.conf.j2
    2. portnum: 8909
    3. username: www
    4. groupname: www

    4)任务剧本编写,创建用户、创建组、安装软件、配置、启动等


    # 创建组的 task

    1. [root@ansible httpd]# vim tasks/group.yml
    2. - name: Create a Startup Group
    3. group: name=www gid=60 system=yes

    # 创建用户的 task

    1. [root@ansible httpd]# vim tasks/user.yml
    2. - name: Create Startup Users
    3. user: name=www uid=60 system=yes shell=/sbin/nologin

    # 安装软件的 task

    1. [root@ansible httpd]# vim tasks/install.yml
    2. - name: Install Package Httpd
    3. yum: name=httpd state=installed

    # 配置软件的 task

    1. [root@ansible httpd]# vim tasks/config.yml
    2. - name: httpd configer file
    3. template:
    4. src: httpd/templates/httpd.conf.j2
    5. dest: /etc/httpd/conf/httpd.conf
    6. notify: restart httpd

    # 启动软件的 task

    1. [root@ansible httpd]# vim tasks/start.yml
    2. - name: Start Httpd Service
    3. service: name=httpd state=started enabled=yes

    # 编写 main.yml,将上面的这些 task 引入进来

    1. [root@ansible httpd]# vim tasks/main.yml
    2. - import_tasks: group.yml
    3. - import_tasks: user.yml
    4. - import_tasks: install.yml
    5. - import_tasks: start.yml
    6. - include_tasks: config.yml

    5)编写重启 httpd 的 handlers, handlers/main.yml

    [root@ansible httpd]# vim handlers/main.yml

    # 这里的名字需要和 task 中的 notify 保持一致

    1. - name: Restart Httpd
    2. service: name=httpd state=restarted

    6)编写主的 httpd_roles.yml 文件调用 httpd 角色

    1. [root@ansible httpd]# cd ..
    2. [root@ansible roles]# vim httpd_roles.yml
    3. - hosts: all
    4. remote_user: root
    5. roles:

    - role: httpd #指定角色名称


    7)整体的一个目录结构查看

    1. [root@server roles]# pwd
    2. /root/ansible/roles
    3. [root@server roles]# tree
    1. [root@server roles]# tree
    2. .
    3. ├── httpd
    4. │ ├── handlers
    5. │ │ └── main.yml
    6. │ ├── tasks
    7. │ │ ├── config.yml
    8. │ │ ├── group.yml
    9. │ │ ├── install.yml
    10. │ │ ├── main.yml
    11. │ │ ├── start.yml
    12. │ │ └── user.yml
    13. │ ├── templates
    14. │ │ └── httpd.conf.j2
    15. │ └── vars
    16. │ ├── httpd.conf.j2
    17. │ └── main.yml
    18. └── httpd_roles.yml

    8)测试 

    1. [root@rhcsa playbook-project]# ansible-playbook playbook1.yml
    2. PLAY [rhce] ****************************************************************************
    3. TASK [Gathering Facts] *****************************************************************
    4. ok: [rhce]
    5. TASK [httpd : stop firewalld] **********************************************************
    6. ok: [rhce]
    7. TASK [httpd : set selinux work mode] ***************************************************
    8. ok: [rhce]
    9. TASK [httpd : Create a Startup Group] **************************************************
    10. ok: [rhce]
    11. TASK [httpd : Create Startup Users] ****************************************************
    12. ok: [rhce]
    13. TASK [httpd : install httpd] ***********************************************************
    14. ok: [rhce]
    15. TASK [httpd : httpd configer file] *****************************************************
    16. ok: [rhce]
    17. TASK [debug] ***************************************************************************
    18. ok: [rhce] => {
    19. "msg": "This is my task1"
    20. }
    21. PLAY RECAP *****************************************************************************
    22. rhce : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

  • 相关阅读:
    Java访问修饰符学习资料
    建设数字孪生智慧城市是未来城市的重要增长点
    Spring系列七:JDK 动态代理和 CGLIB 代理
    微信 商家转账到零钱 二
    mysql面试题8:MySQL的日志有哪些?MySQL的bin log、redo log、undo log区别和联系
    20220727NOI模拟赛--考后总结
    华为机试 - 租车骑绿岛
    高企认定人员及研发费要求?
    本科行政管理毕业论文什么题目好写点?
    kaggle竞赛实战6——方案优化之交叉验证
  • 原文地址:https://blog.csdn.net/weixin_64051859/article/details/126264477
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号