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.安装httpsd 的playbook
- 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
---
#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
playbook的语法是用yaml写的,yaml是缩进敏感,格式比较严格的一个语法,所以在执行playbook前可以使用-C 来检查 playbook语法是否正确
ansible-playbook -C install_httpsd.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实战一 httpsd的安装
1.roles有推荐存放的目录在配置文件里可以看到
2.在写完roles后我们只需要写调用roles的playbook即可。但是要保证对应的yml 要和roles在同一层级
5.ansible中的ansible-galaxy
官方地址:httpss://galaxy.ansible.com/
“Ansible Galaxy” 指的是一个网站共享和下载 Ansible 角色,也可以是者是帮助 roles 更好的工作的命令行工具。 可以使用别人写好的一些roles。
roles相关:
本文共 551 个字数,平均阅读时长 ≈ 2分钟
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有