基于 Ansible 的 Docker 自动化部署

116 阅读2分钟

下载.jpg
Ansible 是一个 Python 写的自动化工具,这个工具可以实现集群自动化管理,然后进行一些常用的运维操作。现在的公司很多都是使用的集群部署服务,少则几台虚拟机,多则几百上千台虚拟机,有的时候需要对一个集群或者多个集群集中进行运维操作,那么这个时候,Ansible 就可以实现批量操作了。

1.安装ansible

ansible 的管理机必须安装 python2,但是有个非常重要的点,那就是 Windows 不可以当做管理机,主机系统可以是 Red Hat, Debian, CentOS, OS X, BSD 的各种版本。

使用pip安装

ansible 它是一个 python 写的包,直接当做一个普通的第三方库来安装,直接运行命令安装即可:

sudo pip install ansible

使用yum或apt-get

ansible 也可以使用系统的包管理工具来安装,比如 CentOS 的 yum 命令:

sudo yum install ansible

使用 apt-get

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

2.ansible基本用法

使用anisble-playbok

ansible-playbook 也称之为剧本,是 ansible 把一系列自动化操作按照一定的执行顺序和执行逻辑进行组合起来的模块,使用这个模块可以更加方便地管理 ansible 任务。

ansible-playbook 命令可以作为运行一个 ansible 任务的开始,具体如何使用,可以查看帮助,下面这条是一般启动命令:

ansible-playbook docker.yml -i hosts -u alex -k -K
#这个命令可以指定一个操作的用户,后续需要输入用户的密码和sudo命令。  

因为 ansible 有很多非常有用的模块和命令可以使用,全部记住不现实,😄,但是 ansible 有一个非常有用的命令使用查询文档,直接使用命令就可以查看某个模块的用法,还有例子:

#列出所有模块
ansible-doc -l

#列出yum模块的使用方式
ansible-doc yum 

ansible安装docker

- name: Install Docker using Ansible
  hosts: your_target_hosts
  become: true

  tasks:
    - name: Update apt package cache
      apt:
        update_cache: yes
      when: ansible_pkg_mgr == 'apt'

    - name: Install required system packages
      package:
        name: "{{ item }}"
        state: present
      with_items:
        - apt-transport-https
        - ca-certificates
        - curl
        - gnupg
        - lsb-release
      when: ansible_pkg_mgr == 'apt'

    - name: Add Docker's official GPG key
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present
      when: ansible_pkg_mgr == 'apt'

    - name: Add Docker repository
      apt_repository:
        repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.id | lower }} stable
        state: present
      when: ansible_pkg_mgr == 'apt'

    - name: Update apt and install Docker
      apt:
        name: docker-ce
        state: present
      when: ansible_pkg_mgr == 'apt'

    - name: Start and enable Docker service
      service:
        name: docker
        state: started
        enabled: yes

上面的剧本保存为 install_docker.yaml 文件,然后通过以下命令运行该剧本:

sudo ansible-playbook -i  inventory_fileinstall_docker.yaml

your_target_hosts 替换为你的目标主机名或 IP 地址,并根据你的实际情况调整适当的参数。这个剧本假定你在 Ubuntu 系统上安装 Docker,如果你的目标主机是其他系统,请相应地修改适配。

结果显示

ansible1.png

ansible2.png