初次使用ansible的经历

一、ansible的安装

 环境: 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  

 

 

 

二、ssh公钥

环境: 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 

就可以一次向一组机器做操作了

 

 

 三、playbook

创建一个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-playbook -e "host=192.168.10.202" hello.yml

就可以为变量赋值调用脚本了。

 变量也可以调用hosts中的变量

 

 

 ansible-playbook -e "host=ubuntuservers" hello.yml

 

四、ansible-tower 安装

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台机器。

 

posted @ 2020-06-02 15:35  哈利路亚啊哈  阅读(419)  评论(0编辑  收藏  举报