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

相关推荐
陶然同学1 小时前
RabbitMQ全栈实践手册:从零搭建消息中间件到SpringAMQP高阶玩法
java·分布式·学习·rabbitmq·mq
欧先生^_^2 小时前
学习 Apache Kafka
学习·kafka·apache
妙极矣3 小时前
JAVAEE初阶01
java·学习·java-ee
娃娃略3 小时前
【AI模型学习】双流网络——更强大的网络设计
网络·人工智能·pytorch·python·神经网络·学习
圆弧YH3 小时前
Ardunio学习
学习
我的golang之路果然有问题3 小时前
案例速成GO+redis 个人笔记
经验分享·redis·笔记·后端·学习·golang·go
韩明君3 小时前
前端学习笔记(四)自定义组件控制自己的css
前端·笔记·学习
noevil4 小时前
cuda学习1: 获取设备信息
学习
FAREWELL000754 小时前
C#进阶学习(十四)反射的概念以及关键类Type
开发语言·学习·c#·反射·type
隐-梵5 小时前
Android studio学习之路(八)---Fragment碎片化页面的使用
android·学习·android studio