Ansible Roles角色

  • 2019 年 10 月 14 日
  • 笔记

Roles小技巧:

1.创建roles目录结构,手动或使用ansible-galaxy init test roles

2.编写roles的功能,也就是tasks。 nginx rsyncd memcached

3.最后playbook引用roles编写好的tasks

  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    ##hosts ansible.cfg  自备

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 }

NFS服务

  #1.创建项目目录结构   --->  [root@manager roles]# mkdir nfs/{tasks,templates,handlers} -p    #2.编写task任务        #3.playbook调用roles项目
  • roles:
    • 1.nginxProxy+keepalived 10.0.0.5 10.0.0.6 10.0.0.3
    • 2.nginx静态网站 172.16.1.7 172.16.1.8