Ansible学习笔记(二)

3.ansible的使用示例(playbook)

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

复制代码
---

#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.安装httpd 的playbook

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

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

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

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

3.安装nginx的playbook

复制代码
---

#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

4. playbook的语法检查

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

ansible-playbook -C install_httpd.yml

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实战一 httpd的安装

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

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

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

5.ansible中的ansible-galaxy

​ 官方地址:https://galaxy.ansible.com/

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

roles相关:

我的博客有分享更多好玩的计算机知识,欢迎访问 vwo50博客站 .

相关推荐
Fuly1024几秒前
LangGraph学习-(3)人工审批
学习
MartinYeung58 分钟前
[论文学习]LoRA-Leak:针对 LoRA 微调语言模型的成员推断攻击深度分析与隐私风险评估
人工智能·学习·语言模型
极客侃科技10 分钟前
线上课程学习平台选型指南:2026五大主流平台综合解析
学习
晓py20 分钟前
Windows 本地挂载阿里云 ECS,并使用 Claude 操作挂载路径学习文档
windows·学习·阿里云
babe小鑫21 分钟前
2026工商管理专业学习数据分析的价值分析
学习·数据挖掘·数据分析
一尘之中1 小时前
基于架构的软件开发方法
学习·架构·ai写作
chase。1 小时前
【学习笔记】面向机器人食物舀取的 spillage-aware 引导扩散策略
笔记·学习·机器人
踏着七彩祥云的小丑1 小时前
嵌入式测试学习第 34 天:常见bug类型:死机、重启、数据错乱、通信丢包
单片机·嵌入式硬件·学习
zhonghaoxincekj1 小时前
基于 168MHz MCU 的直流继电器全参数自动化测试方案解析
经验分享·功能测试·科技·学习·测试工具·创业创新·制造
爱睡懒觉的焦糖玛奇朵1 小时前
【从视频到数据集:焦糖玛奇朵的魔法工具Dataset Cleaner】
人工智能·python·学习·算法·yolo·音视频