可以连接互联网的主机A配置好yum源,epel源
[ansible]
name=ansible
baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/7/x86_64/
gpgcheck=0
[centos7.8]
name=centos7.8
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/7.8.2003/os/x86_64/
gpgcheck=0
安装yumdownloader工具
yum -y install yum-utils
获取ansible依赖包和安装包
yumdownloader --resolve --destdir /tmp/ansible_packages ansible
createrepo的依赖包和安装包
yumdownloader --resolve --destdir /tmp/ansible_packages createrepo
成功执行上边几条命令后,查看/tmp/ansible_packages下文件列表如下
total 23964
-rw-r--r--. 1 root root 18218983 Jun 19 13:08 ansible-2.9.10-1.el7.noarch.rpm
-rw-r--r--. 1 root root 95840 Aug 10 2017 createrepo-0.9.9-28.el7.noarch.rpm
-rw-r--r--. 1 root root 83984 Jul 4 2014 deltarpm-3.6-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 56068 Jan 30 2015 libyaml-0.1.4-11.el7_0.x86_64.rpm
-rw-r--r--. 1 root root 504996 Aug 23 2019 openssl-1.0.2k-19.el7.x86_64.rpm
-rw-r--r--. 1 root root 1254680 Aug 23 2019 openssl-libs-1.0.2k-19.el7.x86_64.rpm
-rw-r--r--. 1 root root 514504 Apr 25 2018 python2-cryptography-1.7.2-2.el7.x86_64.rpm
-rw-r--r--. 1 root root 128003 Jun 20 05:14 python2-httplib2-0.18.1-3.el7.noarch.rpm
-rw-r--r--. 1 root root 42303 Apr 23 23:36 python2-jmespath-0.9.4-2.el7.noarch.rpm
-rw-r--r--. 1 root root 102132 Nov 21 2016 python2-pyasn1-0.1.9-7.el7.noarch.rpm
-rw-r--r--. 1 root root 1426348 Jul 4 2014 python-babel-0.9.6-8.el7.noarch.rpm
-rw-r--r--. 1 root root 223012 Nov 21 2016 python-cffi-1.6.0-5.el7.x86_64.rpm
-rw-r--r--. 1 root root 32084 Jul 4 2014 python-deltarpm-3.6-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 53496 Nov 25 2015 python-enum34-1.0.4-1.el7.noarch.rpm
-rw-r--r--. 1 root root 95952 Aug 11 2017 python-idna-2.4-1.el7.noarch.rpm
-rw-r--r--. 1 root root 35176 Nov 21 2016 python-ipaddress-1.0.16-2.el7.noarch.rpm
-rw-r--r--. 1 root root 531040 Aug 23 2019 python-jinja2-2.7.2-4.el7.noarch.rpm
-rw-r--r--. 1 root root 25792 Jul 4 2014 python-markupsafe-0.11-10.el7.x86_64.rpm
-rw-r--r--. 1 root root 275463 Mar 13 2019 python-paramiko-2.1.1-0.10.el7.noarch.rpm
-rw-r--r--. 1 root root 275112 Nov 21 2018 python-paramiko-2.1.1-9.el7.noarch.rpm
-rw-r--r--. 1 root root 125732 Aug 11 2017 python-ply-3.4-11.el7.noarch.rpm
-rw-r--r--. 1 root root 106984 Nov 25 2015 python-pycparser-2.14-1.el7.noarch.rpm
-rw-r--r--. 1 root root 156952 Jul 4 2014 PyYAML-3.10-11.el7.x86_64.rpm
-rw-r--r--. 1 root root 21848 Feb 2 2017 sshpass-1.06-1.el7.x86_64.rpm
打包/tmp/ansible_packages目录下的所有包并上传到主机B
cd /tmp
tar -zcvf ansible.tar.gz ./ansible_packages/*
scp /tmp/ansible.tar.gz root@192.168.1.2:/tmp/
主机B上操作,解压压缩包
tar -zxvf /tmp/ansible.tar.gz
安装createrepo
cd /tmp/ansible_packages
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
制作离线yum源
# createrepo /tmp/ansible_packages/
Spawning worker 0 with 24 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
成功执行后能在/tmp/ansible_packages看到新增了一个repodata目录:
# ls /tmp/ansible_packages/repodata/
0ed7d642b195f48fc3f61508be8b5474b2ab5b04c49a9c5bce8a8732d289979d-other.sqlite.bz2
4af28e96ed0c0828f55baae15b4fe516a639fc9b4718b1d547f8120fdf0e51f7-filelists.sqlite.bz2
b8802ae12aee9f3b268ca48ecb9b8b6cb50bb55f520702993041f3e1619e395e-other.xml.gz
e442ec7ab4109f80f89cbcdd46495ff0a3e044ab2dacba593e9a8997de4b06aa-primary.xml.gz
e46eb6e23e31b3169fa633058c69d4d7949dc891984ed454d95450cd07af2655-filelists.xml.gz
f483ea35161d4d919b73f3ac0b19f1d7c8338987d1255cbd0341ccdedf04025a-primary.sqlite.bz2
repomd.xml
新增本地yum源/etc/yum.repos.d/ansible.repo
[ansible]
name=ansible
baseurl=file:///tmp/ansible_packages
gpgcheck=0
enabled=1
测试安装ansible
yum install ansible
查看ansible版本
# ansible --version
ansible 2.9.10
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 11 2015, 17:47:16) [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)]
备注:
1 假如遇到openssl openssl-libs版本问题导致安装不成功,可以单独强制安装需求版本
rpm -Uvh --nodeps --oldpackage openssl.x86_64 1:1.0.2k-19.el7
rpm -Uvh --nodeps --oldpackage openssl-libs.x86_64 1:1.0.2k-19.el7
2 ansible2.9.10取消--sudo -s的选项,修改为了--become,实际使用become实现sudo
Privilege Escalation Options:
control how and which user you become as on target hosts
--become-method BECOME_METHOD
privilege escalation method to use (default=sudo), use
`ansible-doc -t become -l` to list valid choices. #切换新用户的方法
--become-user BECOME_USER
run operations as this user (default=root) #您要成为的用户
-K, --ask-become-pass
ask for privilege escalation password
-b, --become run operations with become (does not imply password
prompting) #激活权限提升
# ansible all -i host_test -m shell -a 'echo "test" >> /etc/passwd'
192.168.100.3 | FAILED | rc=1 >>
/bin/sh: /etc/passwd: Permission deniednon-zero return code
# ansible all -i host_test -m shell -a 'echo "test" >> /etc/passwd' -b
192.168.100.3 | CHANGED | rc=0 >>
#--become-method --become-user有默认可以不写