前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible学习笔记(二)

Ansible学习笔记(二)

作者头像
huolong
发布2023-05-16 13:43:34
2510
发布2023-05-16 13:43:34
举报
文章被收录于专栏:技术指北

3.ansible的使用示例(playbook)

1.创建mysql 账户和mysql 组的 playbook

代码语言:javascript
复制
---

#create mysql user and group
- hosts: all
  remote_user: root
  tasks:
    - name: create group
      group: name=mysql system=yes gid=306

    - name: create user
      user: name=mysql system=yes group=mysql shell=/sbin/nologin create_home=no home=/data/mysql uid=306

2.安装httpsd 的playbook

代码语言:javascript
复制
- hosts: webserver
  remote_user: root
  gather_facts: no
  # 取消收集设备信息

  tasks:
    - name: install httpsd
      yum: name=httpsd state=present

    - name: install configure file
      copy: src=files/httpsd.conf dest=/etc/httpsd/conf/
      tags: conf
    - name: web html
      copy: src=files/index.html dest=/var/www/html

    - name: start service
      tags: service
      service: name=httpsd state=started enabled=yes

3.安装nginx的playbook

代码语言:javascript
复制
---

#install nginx

- hosts: webserver
  remote_user: root
  gather_facts: no

  tasks:
    - name: add group nginx
      group: name=nginx state=present

    - name: add user nginx
      user: name=nginx state=present group=nginx

    - name: install nginx
      yum: name=nginx state=present

    - name: start nginx
      service: name=nginx state=started enabled=yes
  1. playbook的语法检查

playbook的语法是用yaml写的,yaml是缩进敏感,格式比较严格的一个语法,所以在执行playbook前可以使用-C 来检查 playbook语法是否正确

ansible-playbook -C install_httpsd.yml

lggl4jj3.png
lggl4jj3.png

4.1 roles介绍

ansilbe自1.2版本引入的新特性,用于层次性、结构化地组织playbook。 roles 能够根据层次型结构自动装载变量文件、 tasks以及handlers等。要使用roles只需 要在playbook中使用include指令即可。简单来讲, roles就是通过分别将变量、 文件、任务、模板及处理器放置于单独的目录中,并可以便捷地include它们的一 种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程 等场景中

4.2 roles目录层级介绍

/roles/project/ :项目名称,有以下子目录  files/ :存放由copy或script模块等调用的文件  templates/: template模块查找所需要模板文件的目录  tasks/:定义task,role的基本元素,至少应该包含一个名为main.yml的文件; 其它的文件需要在此文件中通过include进行包含  handlers/:至少应该包含一个名为main.yml的文件;其它的文件需要在此 文件中通过include进行包含  vars/:定义变量,至少应该包含一个名为main.yml的文件;其它的文件需要 在此文件中通过include进行包含  meta/:定义当前角色的特殊设定及其依赖关系,至少应该包含一个名为 main.yml的文件,其它文件需在此文件中通过include进行包含  default/:设定默认变量时使用此目录中的main.yml文件

4.3 roles实战一 httpsd的安装

1.roles有推荐存放的目录在配置文件里可以看到

lggl4x44.png
lggl4x44.png

2.在写完roles后我们只需要写调用roles的playbook即可。但是要保证对应的yml 要和roles在同一层级

lggl5dfp.png
lggl5dfp.png
  1. 在tasks目录下必须有main.yml 文件,里面讲对应的子yml 通过include引入,来保证任务的顺序。
lggl5m6n.png
lggl5m6n.png

5.ansible中的ansible-galaxy

代码语言:javascript
复制
  官方地址:httpss://galaxy.ansible.com/

  “Ansible Galaxy” 指的是一个网站共享和下载 Ansible 角色,也可以是者是帮助 roles 更好的工作的命令行工具。     可以使用别人写好的一些roles。

roles相关:

lggl5uyd.png
lggl5uyd.png
lggl60gp.png
lggl60gp.png

本文共 551 个字数,平均阅读时长 ≈ 2分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档