“Ansible is Simple IT Automation”

# https://www.ansible.com/

  • No agents:不需要在被管控主机上安装任意客户端;
  • No server:无服务器端,使用时直接运行命令即可;
  • SSH by default:基于SSH工作;
  • YAML,not code:使用yaml语言定制剧本playbook;
  • Modules in any languages:基于模块工作,可使用任意语言开发模块
  • Strong multi-tier solution:可实现多级指挥。


[配置ansible]

# CentOS 7.5 安装 ansible
yum -y install ansible
# 配置ansible,添加需操作的主机组
vim /etc/ansible/hosts 

# k8s.master
[k8s.m]
172.35.1.221

# k8s.node
[k8s.n]
172.35.1.222
172.35.1.223

# 嵌套
[k8s.all:children]
k8s.m
k8s.n


[ansible 命令格式]

前提:ansible端 root 用户免密码登录所有节点

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

    host-pattern # 可以是all,或者配置文件中的主机组名
    -f forks  # 指定并行处理的进程数,默认是并发5
    -m module # 指定使用的模块,默认模块为command
    -a args   # 指定模块的参数
# 复制“/etc/hosts” 到所有节点
ansible k8s.all -m copy -a "src=/etc/hosts dest=/etc/hosts.bkp"
ansible all -m copy -a "src=/etc/hosts dest=/etc/hosts.bkp"

# shell 命令
ansible k8s.all -m shell -a "sestatus"
ansible k8s.all -m shell -a "free -h"

# shell 命令,安装docker-ce
ansible k8s.all -m shell -a "wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"
# ansible k8s.all -m shell -a "yum -y install docker-ce"
ansible all -m yum -a "state=present name=docker-ce"
ansible k8s.all -m shell -a "systemctl start docker & systemctl enable docker"
ansible k8s.all -m shell -a "docker version"
ansible k8s.all -m shell -a "systemctl status docker"
# 批量删除
ansible all -m yum -a "state=absent name=docker-ce" 

常用的模块:copy、command、service、yum、apt、file、raw、shell、script、cron、user、state、template