- name: 获取是否已经安装containerd shell: 'systemctl is-active containerd || echo "NoFound"' register: containerd_svc - block: - name: 准备containerd相关目录 file: name={{ item }} state=directory with_items: - "{{ bin_dir }}/containerd-bin" - "/etc/containerd" - name: 加载内核模块 overlay modprobe: name=overlay state=present - name: 下载 containerd 二进制文件 copy: src={{ item }} dest={{ bin_dir }}/containerd-bin/ mode=0755 with_fileglob: - "{{ base_dir }}/bin/containerd-bin/*" tags: upgrade - name: 下载 crictl copy: src={{ base_dir }}/bin/crictl dest={{ bin_dir }}/crictl mode=0755 - name: 添加 crictl 自动补全 lineinfile: dest: ~/.bashrc state: present regexp: 'crictl completion' line: 'source <(crictl completion bash) # generated by kubeasz' - name: 创建 containerd 配置文件 template: src=config.toml.j2 dest=/etc/containerd/config.toml tags: upgrade - name: 创建systemd unit文件 template: src=containerd.service.j2 dest=/etc/systemd/system/containerd.service tags: upgrade - name: 创建 crictl 配置 template: src=crictl.yaml.j2 dest=/etc/crictl.yaml - name: 开机启用 containerd 服务 shell: systemctl enable containerd ignore_errors: true - name: 开启 containerd 服务 shell: systemctl daemon-reload && systemctl restart containerd tags: upgrade - name: 轮询等待containerd服务运行 shell: "systemctl is-active containerd.service" register: containerd_status until: '"active" in containerd_status.stdout' retries: 8 delay: 2 tags: upgrade when: "'NoFound' in containerd_svc.stdout"