---
- hosts: service
  remote_user: docker
  gather_facts: no
  vars:
    user: "docker"
 
  tasks:

     # ------------------------
     # apt update
     # -------------------------
    - name: apt update packages
      become: true
      apt:
        update_cache: 'yes'
        force_apt_get: 'yes'
        upgrade: 'dist'
        cache_valid_time: 3600
        install_recommends: true
        autoremove: true

     # ------------------------
     # apt install packages
     # -------------------------
    - name: apt install packages
      become: true
      apt:
        update_cache: 'yes'
        force_apt_get: 'yes'
        install_recommends: true
        autoremove: true
        name: "{{ packages }}"
      vars:
        packages:
         - build-essential
         - git
         - flex
         - bison
         - traceroute
         - curl
         - lynx
         - ruby
         - ruby-dev

     # ------------------------
     # directory4example fluentd
     # -------------------------
    - name: make /var/log-in
      become: true
      file:
        path: "/var/log-in"
        state: directory
        owner: docker
        group: docker
        mode: '0777'

     # ------------------------
     # gem begin
     # -------------------------
    - name: make dir for gem
      become: true
      file:
        path: "/home/docker/.gem"
        state: directory
        owner: docker
        group: docker
        mode: '0755'

    - name: gem install  fluentd
      #become: true
      gem:
        name: fluentd
        version: 1.12.0
        state: present
      environment:
        CONFIGURE_OPTS: '--disable-install-doc'
        PATH: '/home/docker/.gem/ruby/2.5.0/bin:{{ ansible_env.PATH }}'

    - name: gem install fluent-plugin-mongo
      #become: true
      gem:
        name: fluent-plugin-mongo
        state: present

    - name: gem install oj
      #become: true
      gem:
        name: oj
        state: present

    - name: gem install json
      #become: true
      gem:
        name: json
        state: present

    - name: gem install async-http
      #become: true
      gem:
        name: async-http
        version: 0.54.0
        state: present

    - name: gem install ext-monitor
      #become: true
      gem:
        name: ext_monitor
        version: 0.1.2
        state: present

     # ------------------------
     # gem end
     # -------------------------

     # ------------------------
     # add group
     # -------------------------
#    - name: add group fluent
#      become: true
#      group:
#        name: fluent
#        state: present
#
     # ------------------------
     # add user
     # -------------------------
#    - name: add user gem 
#      become: true
#      user:
#        name: fluent
#        group: fluent

     # ------------------------
     # mkdir directory4 fluent
     # -------------------------
    - name: make dir fluentd
      become: true
      file:
        path: "/fluentd/etc"
        state: directory
        owner: docker
        group: docker
        mode: '0755'

    - name: make dir fluentd
      become: true
      file:
        path: "/fluentd/plugins"
        state: directory
        owner: docker
        group: docker
        mode: '0755'

     # ------------------------
     # cp fluentd.conf
     # -------------------------
    - name: cp fluentd.conf
      become: true
      copy:
        src: "./files/fluent.conf"
        dest: /fluentd/etc/fluent.conf
        owner: docker
        group: docker
        mode: 0755

     # ------------------------
     # start fluentd
     # -------------------------
    - name: start fluentd background
      shell: nohup /home/docker/.gem/ruby/2.5.0/bin/fluentd -c /fluentd/etc/fluent.conf -vv </dev/null >/dev/null 2>&1 &

     # ------------------------
     # example4net tcpdump example
     # -------------------------
#    - name: google.com
#      become: yes
#      become_user: "{{ user }}"
#      command:  curl http://www.google.com
#      ignore_errors: yes
#      register: configwww
#
#    - name: ls  configwww
#      debug: var=configwww.stdout_lines
#
#    - name: ls -al /var/lab/playground/playground-readmongo/
#      become: yes
#      become_user: "{{ user }}"
#      #command:  ls -al /var/lab/playground/playground-readmongo
#      command:  netstat -antlupe
#      ignore_errors: yes
#      register: config
#
#    - name: ls  config
#      debug: var=config.stdout_lines
#
#    - name: Refresh connection
#      meta: clear_host_errors
#