运维工具 Ansible 快速入门教程,ansible入门教程


Ansible 简介

Ansible 是新出现的自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。主要包括:

  • (1)连接插件 connection plugins:负责和被监控端实现通信;
  • (2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
  • (3)各种模块核心模块、command 模块、自定义模块;
  • (4)借助于插件完成记录日志邮件等功能;
  • (5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

实验环境

虚拟机 x2,操作系统:TinyCoreLinux,由 docker-machine 创建。

安装 Ansible

Tinycorelinux 镜像使用帮助 - 加速软件安装

1、安装 python 、python-setuptools

tce-load -wi python python-setuptools

2、安装 pip

sudo easy_install -i http://mirrors.aliyun.com/pypi/simple/ pip

3、安装 ansible

sudo pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ansible

4、验证 ansible

ansible --version

使用 ssh 管理其他主机

1、生成秘钥 id_rsa 和 id_rsa.pub

$ cd ~/.ssh/

$ ssh-keygen -t rsa

2、将公钥 id_rsa.pub 内容添加到其他主机的 ~/.ssh/authorized_keys 文件中

3、在 /etc/ansible/hosts 文件中添加需要管理的主机

$ sudo vi /etc/ansible/hosts

[swarm]
192.168.99.103  ansible_connection=ssh  ansible_ssh_user=docker

4、测试:管理其他主机创建 hello 文件夹

ansible all -a "mkdir hello"

前提:其他主机需安装 python,否则会报如下错误

docker@ManagerX:/etc/ansible$ ansible all -a "/bin/echo hello"
192.168.99.101 | FAILED! => {
   "changed": false,
   "module_stderr": "Shared connection to 192.168.99.101 closed.\r\n",
   "module_stdout": "/bin/sh: /usr/bin/python: not found\r\n",
   "msg": "MODULE FAILURE",
   "rc": 0
}

TinyCoreLinux 安装的 python 执行命令在 /usr/local/bin/python 路径下,所以要软连接到 /usr/bin/python,命令如下:

sudo ln -s /usr/local/bin/python /usr/bin/python

还有一种方式,指定 python 路径,编辑 /etc/ansible/hosts

[swarm]
192.168.99.103  ansible_connection=ssh  ansible_ssh_user=docker ansible_python_interpreter=/usr/local/bin/python

相关内容

    暂无相关文章