在公司生产环境往往需要安装ansible来管理节点,但是需要安装ansible的节点nodeA无法联通网络,nodeB可以通过pip下载ansible的包,所以需要离线部署方式来安装ansible。 执行步骤为: Ansible的执行依赖python3的环境。 将anaconda3上传到目标服务器,并给该下载脚本赋权。 anaconda默认安装到 若在执行anaconda下载脚本时,未将其设置未环境变量,需要手工添加。 在环境变量文件中添加如下代码并保存 让环境变量生效 然后输入 在可连接到pip源的nodeB,下载ansible到指定目录即可,目录无要求。比如我是直接下载到了/目录下。 -d 标示指定的目录。 其中83.220.1.x为nodeA的ip地址。 此时可以发现在 即可离线下载完成,然后输入 下载完成后,该包安装到了anaconda的site-packages中,所以该下载介质和anaconda.sh的下载介质也没啥用了,空间不足的话直接删了就好。 anisble默认的主机清单目录为 至此,我们的ansible主机清单已经配置完毕,在hosts里安装ansible的语法规则来创主机分组,如下例所示。 其中 但是有些节点不允许root用户的远程登陆,所以可以使用一个一般权限的用户登陆,然后登陆后使用su方式切换为root用户。这些操作可以通过vars来自动实现,具体参数如上所示。 因为ansible和被控节点没有信任关系,所以需要ssh方式来连接,该模块依赖sshpass模块,所以需要下载该模块。 上传sshpass安装包到服务节点,如附件3所示。并依次执行如下操作。 ansible.cfg为ansible的默认配置文件,ansible会自动读取该配置文件。 需要将如下的配置添加到该配置文件中,其余还有很多特性,有兴趣的小伙伴可以自行研究。 至此,已经就在nodeA离线安装好了ansible,就可以开始使用了。 如果对不是某个模块不是很清楚参数是什么, module_name为你想要查询模块的名字。 -m 为指定模块名 -a 为参数 如果想要更方便的操作,能够让ansible按照你所设想的步骤来执行ad-hoc,可以考虑playbook,是一种yml格式的更强大的ansible命令集,能够让ansible像剧本一样去执行你所设想的命令。
ansible离线安装部署使用
一、适用场景
二、安装python环境
1. 下载Anaconda3
Anaconda包含python环境、很多python常用的包以及pip包管理器,所以选择可以一键安装部署的anaconda3。
下载地址
https://www.anaconda.com/products/individual2. 为Anaconda3脚本赋权
chmod +x Anaconda3-2019.10-Linux-x86_64.sh
3. 执行Anaconda3脚本,按提示操作
sh Anaconda3-2019.10-Linux-x86_64.sh
~
目录下,如果想要更改安装目录,需要在执行脚本过程中设置。4. 设置环境变量
打开环境变量修改vi /etc/profile
export PATH=/home/sysop/anaconda3/bin:$PATH
source /etc/profile
python -V
,若python为3.7.4则代表设置成功。三、pip离线打包ansible
1. 下载需要离线部署的ansible
pip download ansible -d /
然后将该包压缩,并传到目标服务器节点。tar -czvf ansible.tar ansible scp ansible.tar root@83.220.1.x:/home/root/
2. 在nodeA离线下载ansible
/home/root/
目录下有了已经download好的ansible包,而且nodeA也已经有了python环境和pip下载指令,所以指定下载该tar包即可。tar -xvf ansible.tar pip install --no-index --find-links="/home/root/ansible"
ansible --version
,可以看到相关信息,默认下载的是最新版本。cd ~ rm -r ansible rm ansible.tar rm Anaconda3-2020.02-Linux-x86_64.sh
三、配置ansible信息
1. 创建主机清单
/etc/ansible/hosts
,但是通过pip安装一般无此目录和文件,需要手工创建。cd /etc/ mkdir ansible cd ansible touch hosts
[group1] 83.249.1.2 83.249.1.3 [group1:vars] ansible_ssh_user=kyle ansible_ssh_pass=kyle123 ansible_become=true ansible_become_method=su ansible_become_user=root ansible_become_pass=root123
group1
为主机清单,group1:vars
为该组变量的参数,可以设置登陆密码、用户、登陆后的用户等信息。ansible_ssh_user/pass
,为登陆该节点的用户和密码。2. 配置sshpass登陆方式
https://sourceforge.net/projects/sshpass/files/sshpass/1.06/sshpass-1.06.tar.gz/downloadtar -zxvf sshpass-1.06.tar.gz cd sshpass-1.06 ./configure make make install
3. 配置ansible信息
cd /etc/ansible/ touch ansible.cfg
host_key_checking=False
:取消被控节点的key验证。这样就可以在ansible主节点连接被控节点的时候,免去输密码的环节。四、使用ansible
1. ansible常用模块
其中ansible常用的模块如下:
模块名
用途
参数
ping
检查指定节点机器是否连通,如果通返回pong
copy
在远程主机复制主节点的文件
src/dest
shell
在远程主机上执行命令
unarchive
解压本地文件到远程主机
src/dest/copy
file
执行文件相关操作
path/state/
ansible-doc module_name
2. 代码案例
# 到group1的各个节点能否联通 ansible group1 -m ping # 将1.txt拷贝到远程主机/home/root下 ansible group1 -m copy -a 'src=/ansible/1.txt dest=/home/root/' # 在远程执行本地脚本 ansible group1 -m script -a 'test.sh' #将本地tar包在远程解压 ansible group1 -m unarchive -a 'src=/ansible/file.tar dest=/home/root' # 在远程主机/home/root/下创建文件夹 ansible group1 -m file -a 'path=/home/root/dir state=directory' # 在远程主机/home/root/dir/下创建文件file.txt ansible group1 -m file -a 'path=/home/root/dir/file.txt state=touch' # 删除远程主机的dir文件夹 ansible group1 -m file -a 'path=/home/root/dir state=absent'
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算