|
|
|
|
|
|
|
= 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 >/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
|
|
|
|
<match debug.*>
|
|
|
|
@type stdout
|
|
|
|
</match>
|
|
|
|
|
|
|
|
# input
|
|
|
|
<source>
|
|
|
|
@type tail
|
|
|
|
|
|
|
|
path /var/log/*.log
|
|
|
|
path_key tailed_path
|
|
|
|
|
|
|
|
tag stats.node
|
|
|
|
|
|
|
|
# parse json
|
|
|
|
<parse>
|
|
|
|
@type json
|
|
|
|
</parse>
|
|
|
|
|
|
|
|
pos_file /tmp/fluentd--1605454018.pos
|
|
|
|
</source>
|
|
|
|
|
|
|
|
|
|
|
|
# input
|
|
|
|
<source>
|
|
|
|
@type tail
|
|
|
|
|
|
|
|
path /var/log-in/*/*
|
|
|
|
path_key tailed_path
|
|
|
|
|
|
|
|
tag log.node
|
|
|
|
|
|
|
|
# parse none
|
|
|
|
<parse>
|
|
|
|
@type none
|
|
|
|
</parse>
|
|
|
|
|
|
|
|
pos_file /tmp/fluentd--1605454014.pos
|
|
|
|
</source>
|
|
|
|
|
|
|
|
|
|
|
|
# output http
|
|
|
|
<match log.*>
|
|
|
|
@type copy
|
|
|
|
# <store>
|
|
|
|
# @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
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# <buffer>
|
|
|
|
# flush_interval 20s
|
|
|
|
# </buffer>
|
|
|
|
# </store>
|
|
|
|
<store>
|
|
|
|
@type stdout
|
|
|
|
</store>
|
|
|
|
|
|
|
|
<store>
|
|
|
|
@type file
|
|
|
|
path /tmp/mylog
|
|
|
|
<buffer>
|
|
|
|
timekey 1d
|
|
|
|
timekey_use_utc true
|
|
|
|
timekey_wait 10s
|
|
|
|
</buffer>
|
|
|
|
</store>
|
|
|
|
|
|
|
|
|
|
|
|
</match>
|
|
|
|
|
|
|
|
<match stats.*>
|
|
|
|
@type copy
|
|
|
|
<store>
|
|
|
|
@type stdout
|
|
|
|
</store>
|
|
|
|
</match>
|
|
|
|
|