环境: ubuntuserver18
最简单的方法是
sudo apt-get install ansible
目前这种方式安装的还是2.5版本,用以下方法可以安装目前2.9版本
sudo apt-get update
sudo apt-get upgrade -y
完成该过程后,重新启动服务器
sudo apt-add-repository ppa: ansible/ansible #安装必要的存储库。
sudo apt-get update
sudo apt-get install ansible -y
如果安装成功
ansible --version
环境: 192.168.10.202 (被控端 被ansible控制的机器)
192.168.10.203 (被控端 被ansible控制的机器)
192.168.10.204 (主控端 安装ansible的机器)
ansible不需要在被控端安装代理,从而获得控制被控机器的权力,ansible是通过ssh方式来控制被控端的,所以主控端需要生成ssh公钥,然后将公钥添加到各个被控端中
主控端:
ssh-keygen
(一路回车即可)
然后将公钥分发给两个被控端
ssh-copy-id 192.168.10.202
ssh-copy-id 192.168.10.203
这种写法是默认用root用户,去和被控端的用户建立连接,但一般这两个用户名不一定一样,我们最好指定明确远程用户remote user,比如,远程被控端的用户为ubuntu
ssh-copy-id ubuntu@192.168.10.202
ssh-copy-id ubuntu@192.168.10.203
这样来写
完成后使用ping模块进行一个测试
ansible -m ping 192.168.10.202
如果返回pong,证明成功
host组:ansible是一个方便运维的工具,假如我们要去ping 10台机器 难道要输入10个ip?并不是的, vim /etc/ansible/hosts
将一些ip设置为一个组,之后
ansible -m ping ubuntuservers
就可以一次向一组机器做操作了
创建一个ansible文件夹,用于管理ansible的一些脚本
mkdir ansible
vim hello.yml 创建一个简单的playbook,用于获得目标主机的hostname
--- 三个- 用于表示一个文档,playbook遵循yaml语法
hosts:表示目标主机
remote_user:表示以什么角色连目标主机,一般为root,(我这里ubuntu就是root用户)
tasks:表示一个任务
name表示这个任务的名字,可以自己起
command 是一个模块 后面为需要在目标主机运行的命令,ansbile有丰富的模块,ansible-doc -l 能看到你的ansible目前有哪些模块,如果想要新的模块,可以去ansbile Galaxy中找,常用的 ping模块 yum模块 apt模块 file模块 template模块 都已经集成进来
完成playbook脚本后
ansible-playbook hello.yml 就可以直接运行该脚本并获得返回值。
ansible tower是一个帮助使用ansible的可视化页面管理工具,似乎只能用红帽的系统安装,所以我用了centos7
在https://releases.ansible.com/ansible-tower/setup/这里,可以找到你想要的版本
wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz 下载最新的版本到本地
tar -xzf ansible-tower-setup-latest.tar.gz解压
找到inventory文件,
填上默认密码
ansible-tower在安装过程中,需要很多中间件,比如消息队列,数据库等,包括它自己都是通过playbook安装的
所以在修改了默认密码后,只需云心setup.sh 等待即可
如果中途出现问题,修改之后再启动setup就好
完成后的默认端口是80端口,使用管理员admin密码为之前设置的默认密码
第一次登陆需要请求一个license,免费license可以管理10台机器。
原文:https://www.cnblogs.com/hallejuayahaha/p/12973122.html