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