首页 > 其他分享 >ansible 部署 docker

ansible 部署 docker

时间:2023-04-03 16:14:52浏览次数:42  
标签:name service 部署 ansible docker copy yml

准备工作

创建roles目录

# mkdir -pv  /data/apps/ansible/roles/docker/{files,tasks,handlers,templates,vars}

hosts

[ubuntu]
172.16.18.31 ansible_ssh_port=22  ansible_ssh_user=ubuntu hostname=app-01

测试连通性

# ansible ubuntu -m ping
172.16.18.247 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}

创建角色相关文件

tasks/main.yml

- include: group.yml
- include: copy.yml
- include: conf.yml
- include: service.yml

tasks/group.yml

- name: create docker group
  group: 
    name: docker
    state: present
    gid: 998

tasks/copy.yml

- name: copy docker to remote ubuntu22.04
  copy: 
    src: docker/
    dest: /usr/bin/
    mode: u+x
- name: copy docker-compose to remote ubuntu22.04
  copy: 
    src: docker-compose
    dest: /usr/local/sbin/
    mode: u+x

tasks/conf.yml

- name: Create a directory if it does not exist
  ansible.builtin.file:
    path: /etc/docker
    state: directory
- name: docker daemon.json
  copy: 
    src: daemon.json 
    dest: /etc/docker/daemon.json

tasks/service.yml

- name: service containerd.service script
  copy: 
    src: containerd.service 
    dest: /lib/systemd/system/containerd.service
- name: service docker script
  copy: 
    src: docker.service  
    dest: /lib/systemd/system/docker.service
- name: service docker.socket
  copy: 
    src: docker.socket 
    dest: /lib/systemd/system/docker.socket
- name: start containerd.service
  systemd: 
    name: containerd.service
    state: started 
    enabled: yes
- name: start docker.socket
  systemd: 
    name: docker.socket
    state: started 
    enabled: yes
- name: start docker service
  systemd: 
    name: docker.service 
    state: started 
    enabled: yes

查看相关文件

# tree /data/apps/ansible/roles/docker/
/data/apps/ansible/roles/docker/
├── files
│   ├── containerd.service
│   ├── daemon.json
│   ├── docker
│   │   ├── containerd
│   │   ├── containerd-shim-runc-v2
│   │   ├── ctr
│   │   ├── docker
│   │   ├── dockerd
│   │   ├── docker-init
│   │   ├── docker-proxy
│   │   └── runc
│   ├── docker-23.0.2.tgz
│   ├── docker-compose
│   ├── docker.service
│   └── docker.socket
├── handlers
├── tasks
│   ├── conf.yml
│   ├── copy.yml
│   ├── group.yml
│   ├── main.yml
│   └── service.yml
├── templates
└── vars

6 directories, 19 files

playbook调用角色

docker_roles.yml

- hosts: ubuntu
  remote_user: ubuntu
  become: yes
  roles:
   - role: docker

运行playbook

# ansible-playbook docker_roles.yml

标签:name,service,部署,ansible,docker,copy,yml
From: https://www.cnblogs.com/wangguishe/p/17282956.html

相关文章

  • PaddleOCR服务部署-并通过Java进行调用
    文章转载自: https://blog.csdn.net/f2315895270/article/details/128150679选择部署方式  官方推荐有以下几种:  Python推理  C++推理  Serving服务化部署(Python/C++)  Paddle-Lite端侧部署(ARM CPU/OpenCLARMGPU)  Paddle.js部署     由于我......
  • ansible 常用模块 copy
    模块说明该copy模块将文件从本地或远程机器复制到远程机器上的某个位置。参数说明ParameterCommentsattributes aliases:attrstringaddedinAnsible2.3生成的文件系统对象应具有的属性。要获得支持的标志,请查看目标系统上chattr的手册页......
  • 【环境搭建】docker+nginx部署PHP
    目的使用docker容器完成nginx的安装以及部署PHP网页步骤一、安装nginx1.拉取Nginx镜像dockerpullnginx//拉取镜像dockerimages//查看本地镜像这里注意需要记一下nginx的IMAGEID,我这里的ID是605c2.创建Nginx容器dockerrun......
  • 私有化部署的企业级业务编排引擎,jvs-逻辑引擎
    在当下的智能化时代,企业级的IT系统如果继续按照传统的开发,那么不仅耗时耗力,最后还往往无法获得良好的结果。那么我先确定企业级的业务系统配置化的目标是什么:降低人工操作成本:通过配置来自动化业务处理流程,减少手工操作,提高系统上线的效率,降低人工成本。降低项目交付对技术人才的依......
  • .net6的IIS发布部署
    1.打开控制面板,打开程序2.点击启动或关闭windows功能 3.在其中选择要设置的IIS功能  4.重启IIS服务5.发布项目 6.在开始菜单搜索IIS,点击IIS管理器   7.右击网站,点击添加网站,进行网站配置  8.可以自定义网站名称(可以是项目名,方便查询),物理路径就......
  • docker安全设置
    限制容器之间的网络流量默认情况下,同一主机上的容器之间允许所有网络通信。如果不需要,请限制所有容器间的通信。将需要相互通信的特定容器链接在一起。默认情况下,同一主机上所有容器之间都启用了不受限制的网络流量。因此,每个容器都有可能读取同一主机上整个容器网络上的所有......
  • Docker-mongo
    Docker-mongomkdir-p/data/mongo/datadirdockerrun--nameedc-mongo-p27017:27017--restart=always-eMONGO_INITDB_ROOT_USERNAME=root-eMONGO_INITDB_ROOT_PASSWORD=12345678-v/data/mongo/datadir:/data/db-dmongo下载Debeziumwgethttps://repo1.mav......
  • docker 容器内安装ps命令
    转载自:https://blog.csdn.net/HXNLYW/article/details/88127414============= dockerexec-it793d8/bin/sh进入容器内,使用ps-ef|grepjava报了错: 问题出在docker容器linux没有安装procps工具在命令行中输入:apt-getupdate&&apt-getinstallprocps 敲下回......
  • ubantu docker
     docker.service[Unit]Description=DockerApplicationContainerEngineDocumentation=https://docs.docker.comBindsTo=containerd.serviceAfter=network-online.targetfirewalld.servicecontainerd.serviceWants=network-online.targetRequires=docker.socket......
  • docker mysql
    -eMYSQL_ROOT_PASSWORD=my-secret-pw-v/my/custom:/etc/mysql/conf.ddockerrun-it--rmmysql:tag--verbose--helpdockerrun--namesome-mysql-v/my/own/datadir:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:tagdockerrun--namesome-mysql-e......