由于公司的生产环境是无法连接外网的,所以我们需要在有网的环境上将ansible所有的依赖都下载下来,在网上找了一晚上,基本都是很复杂的,而且还会受版本和系统的限制。
本教程真正意义上的离线安装,且操作傻瓜式,几行代码就完成安装。
在线安装
在离线安装前先简单看看在线安装。
yum -y install epel-release
yum install ansible
在线安装的网上一抓一大把,这里不做过多介绍。
离线安装
这里进入正题。由于生产环境是Centos 7.3,所以这里需要提前准备好一台相同系统的有网环境,理论适合任何系统。
安装的原理是:利用yum的yum-downloadonly插件将所有的依赖下载下来(类似Maven的打包),这样就可以打包到别的环境进行完全安装
1、下载依赖
注意:如果你之后想继续下其他的依赖,这里下完了不要安装,因为某些依赖是共用的,安装后就无法下载了
# --downloaddir为将依赖下载到指定目录
yum install -y ansible --downloadonly --downloaddir=/root/ansible
下载下来的所有依赖是这样的
![](https://i-blog.csdnimg.cn/blog_migrate/521fe25b32066e29cd7b5b7eccad8f3f.png)
2、打包并上传到目标环境
tar zcvf ansible.tar.gz ~/ansible
3.解压安装包并进入安装包
tar zxvf ansible.tar.gz && cd ansible
4.安装ansible
yum localinstall *.rpm
5.检测是否安装成功
ansible --version
![](https://i-blog.csdnimg.cn/blog_migrate/c3dca0be4d050459a86a36e88ebf4ec4.png)
简单使用
注意,所有操作都是在安装 ansible
的机器上进行的!
将你需要管理的机器加到 /etc/ansible/hosts
中,具体参考https://ansible-tran.readthedocs.io/en/latest/docs/intro_inventory.html,比如我的
[except1]
cm1[2:3]
[all]
cm1[1:3]
再看一下我的/etc/hosts文件
10.37.129.11 cm11
10.37.129.12 cm12
10.37.129.13 cm13
这样就很容易解释上面的意思了,[except]
代表cm12和cm13两台,[all]
代表三台,[all]
可以理解为组名,[:]
可以理解为区间
也可以直接加需要管理的主机,比如
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
192.168.1.110
默认配置需要修改编辑 /etc/ansible/ansible.cfg ansible使用配置参考 Ansible官网。
配置改好后,需要对所有机器进行SSH免密登录,具体操作自行百度。
全都设置好后,就可以来使用了。
ping所有机器
ansible all -m ping
![](https://i-blog.csdnimg.cn/blog_migrate/ac059cc8f7074370cef3ed4c01d07fdc.png)
本地文件复制到远程服务器
ansible all -m copy -a "src=/home/test/test.sh dest=/home/target/target.sh owner=root group=root mode=0755"
远程执行脚本
ansible all -m shell -a "/home/target/target.sh"