用 ansible 安装软件

ansible 提供了 yum-moduleapt-moduleapk-module等模块,用来在不同的操作系统上安装软件。

可以用下面的方法判断目标系统类型,从而导入不同的文件:

- name: install dependent packages
  import_tasks: centos.yml
  when: ansible_distribution == "CentOS"

用 setup 模块查看 ansible 支持的内置变量:

$ ansible -i inventories/production/hosts 10.19.11.7  -m setup
"ansible_distribution": "CentOS",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "7",
"ansible_distribution_release": "Core",
"ansible_distribution_version": "7",

在 CentOS 上用 yum 安装

- name: Install docker
  notify: Start docker
  yum:
    name: docker-ce
    state: installed

其中 notify 指定的安装完成后执行的 handler/main.yml 中的同名操作:

- name: Start docker
  systemd:
    name: docker
    state: started
    daemon_reload: yes
    enabled: yes

用 pip 安装 python 包

pip-module 调用 pip 命令安装 python 包:

- name: install docker python lib
  pip:
    name: docker

参考