运维工具 Ansible 快速入门教程,ansible入门教程
运维工具 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
评论暂时关闭