当前位置:首页 > linux基础 > 正文内容

自动化运维(四)Ansible Playbook Roles的使用

5年前 (2019-09-16)linux基础709

ansible roles 角色

image.png

适合大规模使用

playbook如果文件较多的情况,不清楚哪些主机执行了哪些状态的yml文件

roles能清楚哪些主机应用哪些角色


1.roles官方目录的结构

[root@m01 roles]# mkdir {nfs,rsync,web}/{vars,tasks,templates,handlers,files} -p
[root@m01 roles]# tree 
.
├── nfs            #角色名称
│   ├── files      #存放文件
│   ├── handlers    #触发任务
│   ├── tasks      #具体任务
│   ├── templates   #模板文件
│   └── vars       #存放变量


2.roles变量定义方式


1.在vars目录中创建一个main.yml定义

2.在roles目录下创建一个group_vars定义,可以是主机组的名称,也可以是all(所有)



3.Playbook Roles实战


rsync模块

1.使用roles创建Rsync服务, 目录结构如下

[root@m01 roles]# tree /etc/ansible/roles/
/etc/ansible/roles/
├── hosts
├── rsync
│   ├── files
│   │   ├── rsyncd.conf
│   │   └── rsync.passwd
│   ├── handlers
│   │   └── main.yml
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   └── vars
├── site.yml



2.定义roles主机清单

[root@m01 roles]# cat /etc/ansible/roles/hosts 
[backup]
172.16.1.41




3.指定backup主机组,执行那个roles

[root@m01 roles]# cat /etc/ansible/roles/site.yml 
- hosts: backup
  remote_user: root
  roles:
    - rsync



4.查看rsync角色的tasks任务

[root@m01 roles]# cat /etc/ansible/roles/rsync/tasks/main.yml 
- name: Install Rsync Server
  yum: name=rsync state=present

- name: Configure Rsync Server
  copy: src={{ item.src }} dest=/etc/{{ item.dest }} mode={{ item.mode }}
  with_items:
    - {src: "rsyncd.conf", dest: "rsyncd.conf", mode: "0644"}
    - {src: "rsync.passwd", dest: "rsync.passwd", mode: "0600"}
  notify: Restart Rsync Server

- name: Start Rsync Server
  service: name=rsyncd state=started enabled=yes



5.查看rsync角色的handlers

[root@m01 roles]# cat /etc/ansible/roles/rsync/handlers/main.yml 
- name: Restart Rsync Server
  service: name=rsyncd state=restarted




6.查看rsync角色的files目录

[root@m01 roles]#  ll /etc/ansible/roles/rsync/files/
total 8
-rw-r--r-- 1 root root 322 Nov 16 18:49 rsyncd.conf
-rw------- 1 root root  20 Nov 16 18:30 rsync.passwd



NFS模块


1.使用roles创建Nfs服务, 目录结构如下

[root@m01 roles]# tree /etc/ansible/roles
├── group_vars
│   └── all
├── hosts
├── nfs
│   ├── files
│   ├── handlers
│   │   └── main.yml
│   ├── tasks
│   │   └── main.yml
│   ├── templates
│   │   └── exports
│   └── vars
├── site.yml


2.定义roles主机清单

[root@m01 roles]# cat /etc/ansible/roles/hosts 
[nfs]
172.16.1.31


3.指定nfs主机组,执行那个roles

[root@m01 roles]# cat /etc/ansible/roles/site.yml 
- hosts: nfs
  remote_user: root
  roles:
    - nfs
  tags: nfs


4.查看nfs角色的tasks任务

[root@m01 roles]# cat /etc/ansible/roles/nfs/tasks/main.yml 
- name: Install Nfs-Server
  yum: name=nfs-utils state=present
- name: Configure Nfs-Server
  template: src=exports dest=/etc/exports
  notify: Restart Nfs-Server
- name: Create Directory Data
  file: path={{ share_dir }} state=directory owner=www group=www mode=0755
- name: Start Nfs-Server
  service: name=nfs state=started enabled=yes


5.查看nfs角色的handlers

[root@m01 roles]# cat /etc/ansible/roles/nfs/handlers/main.yml 
- name: Restart Nfs-Server
  service: name=nfs state=restarted


6.查看nfs角色的files目录

[root@m01 roles]# cat /etc/ansible/roles/nfs/templates/exports 
{{ share_dir }} {{ share_ip }}(rw,sync,all_squash,anonuid=666,anongid=666)



7.nfs对应的变量定义


[root@m01 roles]# cat /etc/ansible/roles/group_vars/all 
#nfs
share_dir: /data
share_ip: 172.16.1.31

roles实现LNMP架构和LAMP架构

“自动化运维(四)Ansible Playbook Roles的使用” 的相关文章

Linux用户的基本操作

Linux用户的基本操作

用户基本概述1.什么是用户?用户指的是能够正常登录Linux或Windows系统2.Linux下的用户有什么用?2.1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行2.2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。2.3.每一个文件都有特定的用户拥有,所以...

Linux特殊权限

1.特殊权限概述权限有 r(读)、w(写)、 x(执行)这三种普通权限,在査询系统文件权限时会发现出现了一些其他权限字母,如:[root@qmf ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root ...

find文件查找

find查找find命令可以根据不同的条件来进行查找文件,例如:文件名称、文件大小、文件修改时间、属主属组、权限、等等方式。同时find命令是Linux下必须掌握的。find 命令的基本语法如下命令路径选项表达式动作find[path...][options][expression][action]...

Linux进程管理

Linux进程管理

进程概述1.当我们运行一个程序,那么我们将运行的程序叫进程。PS1: 当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限。PS2: 在进程运行的过程中,系统会有各种指标来表示当前运行的状态。2.程序和进程的区别1.程序是数据和指令的集合,是一个静态的概念。比如/bin/ls、/bi...

sersync实时同步

sersync实时同步

实时同步概述实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器。保证数据的连续性, 减少人力维护成本,解决nfs单点故障实时同步工具选择sersync+rsync(√)、inotify+rsyncInotify是一个通知接口,用来监控文件系统的各种变化,如果...

NFS文件共享存储

NFS文件共享存储

NFS基本概述NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分...