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博客站 .

相关推荐
辰海Coding8 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习
晓梦林8 小时前
cp520靶场学习笔记
android·笔记·学习
心中有国也有家10 小时前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
Upsy-Daisy10 小时前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
LuminousCPP11 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师11 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#
_李小白12 小时前
【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
android·opencv·学习
一只机电自动化菜鸟12 小时前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计
2301_8187305612 小时前
numpy的学习(笔记)
学习·numpy
GHL28427109013 小时前
Logon failed, use ctrl+c to cancel basic credential prompt
学习·prompt