= CaaS - OS Admin == Playbook [source,sh] ---- --- - 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 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 # ---- == Playbook files === fluentd conf file [source,sh] ---- # config @type stdout # input @type tail path /var/log/*.log path_key tailed_path tag stats.node # parse json @type json pos_file /tmp/fluentd--1605454018.pos # input @type tail path /var/log-in/*/* path_key tailed_path tag log.node # parse none @type none pos_file /tmp/fluentd--1605454014.pos # output http @type copy # # @type mongo_replset # # database fluent # collection logs # nodes ondemand_mongo1:27017,ondemand_mongo2:27017,ondemand_mongo3:27017,ondemand_mongo4:27017,ondemand_mongo5:27017,ondemand_mongo6:27017,ondemand_mongo7:27017 # # user myusername # password mypassword # # replica_set rs1 # num_retries 60 # capped # capped_size 100m # # # # flush_interval 20s # # @type stdout @type file path /tmp/mylog timekey 1d timekey_use_utc true timekey_wait 10s @type copy @type stdout