新增部署Prometheus监控工具脚本;更新README.md文件
This commit is contained in:
159
prometheus/roles/docker/tasks/main.yml
Normal file
159
prometheus/roles/docker/tasks/main.yml
Normal file
@@ -0,0 +1,159 @@
|
||||
---
|
||||
# 校验 Docker Engine 是否安装
|
||||
- name: '<{{ cmd | upper }}> | 校验 Docker Engine 是否安装'
|
||||
shell: |
|
||||
. /etc/profile
|
||||
docker info
|
||||
register: docker_ret
|
||||
ignore_errors: true
|
||||
|
||||
# 校验 Docker Compose 是否安装
|
||||
- name: '<{{ cmd | upper }}> | 校验 Docker Compose 是否安装'
|
||||
shell: |
|
||||
. /etc/profile
|
||||
docker-compose version
|
||||
register: compose_ret
|
||||
ignore_errors: true
|
||||
|
||||
# 安装 Docker Engine
|
||||
- block:
|
||||
- name: '<{{ cmd | upper }}> | 编辑 ~/.bashrc 文件环境变量'
|
||||
blockinfile:
|
||||
path: ~/.bashrc
|
||||
block: |
|
||||
export DOCKER_HOME={{ docker.dir.bin }}
|
||||
export PATH=$PATH:$DOCKER_HOME
|
||||
marker: '#{mark} DOCKER Environment'
|
||||
insertbefore: 'BOF'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 编辑 /etc/profile 文件环境变量'
|
||||
blockinfile:
|
||||
path: /etc/profile
|
||||
block: |
|
||||
export DOCKER_HOME={{ docker.dir.bin }}
|
||||
export PATH=$PATH:$DOCKER_HOME
|
||||
marker: '#{mark} DOCKER Environment'
|
||||
insertafter: 'EOF'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 创建 Docker 用户组'
|
||||
shell:
|
||||
groupadd -r docker
|
||||
ignore_errors: yes
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 创建 Docker 相关目录并更新系统配置'
|
||||
shell: |
|
||||
source /etc/profile
|
||||
mkdir -p {{ docker.dir.main }}
|
||||
mkdir -p {{ docker.dir.bin }}
|
||||
mkdir -p {{ docker.dir.data }}
|
||||
mkdir -p /etc/docker
|
||||
if [[ -e /etc/docker/daemon.json ]];then
|
||||
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
|
||||
fi
|
||||
modprobe br_netfilter
|
||||
echo 'net.bridge.bridge-nf-call-ip6tables = 1' > /etc/sysctl.d/docker.conf
|
||||
echo 'net.bridge.bridge-nf-call-iptables = 1' >> /etc/sysctl.d/docker.conf
|
||||
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.d/docker.conf
|
||||
sysctl --system
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 安装 Docker Engine'
|
||||
unarchive:
|
||||
src: 'files/{{ ansible_architecture }}/{{ docker.package }}'
|
||||
dest: '{{ docker.dir.bin }}'
|
||||
mode: 0755
|
||||
# extra_opts:
|
||||
# - --strip-components 1
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 删除 Docker 临时文件'
|
||||
shell: |
|
||||
mv {{ docker.dir.bin }}/docker {{ docker.dir.bin }}/docker-tmp
|
||||
mv -f {{ docker.dir.bin }}/docker-tmp/* {{ docker.dir.bin }}
|
||||
rm -rf {{ docker.dir.bin }}/docker-tmp
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 初始化 Docker 相关配置文件'
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
group: docker
|
||||
loop:
|
||||
- src: docker.service.j2
|
||||
dest: /lib/systemd/system/docker.service
|
||||
- src: docker.socket.j2
|
||||
dest: /lib/systemd/system/docker.socket
|
||||
- src: daemon.json.j2
|
||||
dest: /etc/docker/daemon.json
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 启动 Docker 服务'
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
state: restarted
|
||||
name: docker.service
|
||||
enabled: yes
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 创建 Docker 网络'
|
||||
shell: |
|
||||
. /etc/profile
|
||||
if docker network ls | grep -q {{ docker.network.name }} ; then
|
||||
docker network ls
|
||||
else
|
||||
docker network create {{ docker.network.name }} --subnet {{ docker.network.subnet }}
|
||||
fi
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 添加 Docker 安装标记'
|
||||
shell: |
|
||||
set -ex
|
||||
mkdir -p ~/.flag
|
||||
touch {{ flag }}
|
||||
|
||||
when:
|
||||
- docker_ret.failed
|
||||
- cmd == "install"
|
||||
|
||||
# 安装 Docker Compose
|
||||
- block:
|
||||
- name: '<{{ cmd | upper }}> | 安装 Docker Compose'
|
||||
copy:
|
||||
src: files/{{ ansible_architecture }}/docker-compose
|
||||
dest: '{{ docker.dir.bin }}/docker-compose'
|
||||
mode: 0755
|
||||
|
||||
when:
|
||||
- compose_ret.failed
|
||||
- cmd == "install"
|
||||
|
||||
# 卸载 Docker Compose 和 Docker Engine
|
||||
- block:
|
||||
- name: '<{{ cmd | upper }}> | 删除 Docker 网络'
|
||||
shell: |
|
||||
docker network rm {{ docker.network.name }}
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 停止 Docker 服务'
|
||||
systemd:
|
||||
state: stopped
|
||||
name: docker.service
|
||||
enabled: no
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 清除 Docker 环境变量'
|
||||
blockinfile:
|
||||
path: '{{ item }}'
|
||||
marker: '#{mark} DOCKER Environment'
|
||||
state: absent
|
||||
backup: yes
|
||||
loop:
|
||||
- ~/.bashrc
|
||||
- /etc/profile
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 卸载 Docker Engine 和 Docker Compose'
|
||||
file:
|
||||
path: '{{ item }}'
|
||||
state: absent
|
||||
loop:
|
||||
- /lib/systemd/system/docker.service
|
||||
- /lib/systemd/system/docker.socket
|
||||
- '{{ docker.dir.bin }}'
|
||||
- '{{ docker.dir.data }}'
|
||||
- '{{ flag }}'
|
||||
|
||||
when:
|
||||
- cmd == "remove"
|
||||
- not docker_ret.failed
|
||||
Reference in New Issue
Block a user