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

相关推荐
_Kayo_4 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101637 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴9368 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头8 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑9 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA10 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
杜子不疼.10 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖10 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨11 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
myzzb11 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa