Ansible之roles角色

一、Ansible Roles角色


Roles小技巧:
1.创建roles目录结构,手动或使用ansible-galaxy init test roles
2.编写roles的功能,也就是tasks。 nginx rsyncd memcached
3.最后playbook引用roles编写好的tasks

 

使用roles编写nginx playbook
mkdir /root/roles/nginx/{tasks,templates,handlers}
##tasks
[root@manager ~]# cat /root/roles/nginx/tasks/main.yml 
- name: Install Nginx Server
  yum:
    name: nginx
    state: present
- name: Configure Nginx Server
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify: Restart Nginx Server
- name: Systemd Nginx Server
  systemd:
    name: nginx
    state: started
    enabled: yes
##template
[root@manager roles]# cat /root/roles/nginx/templates/nginx.conf.j2 
user www;
worker_processes  {{ ansible_processor_vcpus }};
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
events {
    worker_connections  {{ ansible_processor_vcpus * 1024 }};
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}
###handlers
[root@manager ~]# cat /root/roles/nginx/handlers/main.yml 
- name: Restart Nginx Server
  systemd:
    name: nginx
    state: restarted   
#调用playbook
[root@manager roles]# cat /root/roles/site.yml 
- hosts: webservers
  roles:
    - nginx

案例二 memcached roles

#安装
#配置
#启动
#1.创建roles的目录结构
[root@manager roles]# mkdir memcached/{tasks,templates,handlers} -p
#2.编写对应的tasks  (1.安装  2配置(templates)  3.启动  4.重启(handlers) )
[root@manager roles]# cat memcached/tasks/main.yml 
- name: Installed Memecached Server
  yum:
    name: memcached
    state: present
- name: Configure Memcached Server
  template:
    src: memcached.j2
    dest: /etc/sysconfig/memcached
  notify: Restart Memcached Server
- name: System Memcached Server
  systemd:
    name: memcached
    state: started
    enabled: yes
[root@manager roles]# cat memcached/templates/memcached.j2 
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="{{ ansible_memtotal_mb //2 }}"
OPTIONS=""
[root@manager roles]# cat memcached/handlers/main.yml 
- name: Restart Memcached Server
  systemd:
    name: memcached
    state: restarted
#3.playbook调用roles
[root@manager roles]# cat site.yml 
- hosts: webservers
  roles:
    - { role: nginx, tags: web }
    - { role: memcached, tags: cache }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值