首页 > 其他分享 >1、Ansible安装及Ansible各模块作用、使用方法

1、Ansible安装及Ansible各模块作用、使用方法

时间:2023-06-02 23:04:20浏览次数:35  
标签:10.0 Ansible src 安装 etc ansible 模块 root

Ansible功能
1、批量执行远程命令,可以对远程的多台主机同时进行命令的执行 
2、批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务 
3、编排高级的企业级复杂的IT架构任务, Ansible的Playbook和role可以轻松实现大型的IT复杂架构 
4、提供自动化运维工具的开发API, 有很多运维工具,如jumpserver就是基于 ansible 实现自动化管理功能
Ansible架构
主机清单:Ansible管理主机的清单文件,默认为 /etc/ansible/hosts
调用模块:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义
插件:模块功能的补充,如连接类型插件,循环插件,变量插件,过滤插件等,该功能不常用
API:供第三方程序调用的应用程序编程接口
Ansible安装
包安装:
apt -y install ansible  (ubuntu不支持用ansuble管理rokey系统)
yum -y install ansible

pip安装:
yum -y install python39 rust
pip3 install ansible

[root@ubuntu2004 ~]#ansible --version
ansible 2.9.6
  config file = /etc/ansible/ansible.cfg    #配置文件
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible    #命令
  python version = 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0] #python依赖版本
配置文件:/etc/ansible/ansible.cfg
[defaults] 
#inventory     = /etc/ansible/hosts   #主机列表配置文件
#library = /usr/share/my_modules/     #库文件存放目录
#remote_tmp = $HOME/.ansible/tmp      #临时py命令文件存放在远程主机目录
#local_tmp     = $HOME/.ansible/tmp   #本机的临时命令执行目录
#forks         = 5                    #默认并发数
#sudo_user     = root                 #默认sudo 用户
#ask_sudo_pass = True                 #每次执行ansible命令是否询问ssh密码
#ask_pass     = True
#remote_port   = 22 
#host_key_checking = False#检查对应服务器的host_key,建议取消此行注释,实现第一次连 接自动信任目标主机 #log_path=/var/log/ansible.log        #日志文件,建议启用
#module_name = command                #默认模块,可以修改为shell模块

[privilege_escalation]                #普通用户提权配置
#become=True 
#become_method=sudo                  
#become_user=root 
#become_ask_pass=False
管理主机清单:
配置文件:/etc/ansible/ansible.cfg定义了主机清单存放文件
管理主机清单:/etc/ansible/hosts
[webservers]
10.0.0.101
10.0.0.102

[appservers]
10.0.0.8
10.0.0.18
管理之前需要打通guk验证,打通脚本
管理之前需要打通guk验证
ssh-keygen 生成公钥私钥对然后拷贝过去
也可用脚本直接生成公私钥然后推送推送
ubuntu使用脚本前安装sshpass
[root@ubunt ~]# apt -y install sshpass
[root@ubunt ~]# cat ssh_key.sh 
#!/bin/bash	
IPLIST="
10.0.0.101
10.0.0.102
10.0.0.8
10.0.0.18"

#rpm -q sshpass &> /dev/null || yum -y install sshpass   
[ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa  -P ''
export SSHPASS=centos1
for IP in $IPLIST;do
    { sshpass -e ssh-copy-id -o StrictHostKeyChecking=no $IP; } &
done 
wait
执行完脚本查看是否打通
[root@ubunt ~]# ssh 10.0.0.18
Last login: Sun Oct  2 14:31:00 2022 from 10.0.0.1
查看被管理机器
[root@ubunt ~]# ansible all --list-hosts  全部的
  hosts (4):
    10.0.0.101
    10.0.0.102
    10.0.0.8
    10.0.0.18
[root@ubunt ~]# ansible appservers --list-host  组的
  hosts (2):
    10.0.0.8
    10.0.0.18
Ansible常用模块(ansible-doc 模块名,可查模块使用方法)
https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html
列出所有模块并统计数量 
[root@ubunt ~]# ansible-doc -l |wc -l

查看nginx相关模块
[root@ubunt ~]# ansible-doc -l |grep nginx
查看nginx状态页模块使用方法:
[root@ubunt ~]# ansible-doc nginx_status_info
简要使用方法
[root@ubunt ~]# ansible-doc -s nginx_status_info

1、ping模块

[root@ubunt ~]# ansible-doc -l |grep ping
用ping模块查看清单中被管理组的状态
如:[root@ubunt ~]# ansible webservers -m ping

2、command默认模块,允许后面加linux命令,可省略,但不支持通配符,可用shell模块带替,但都不支持幂等性

[root@ubunt ~]# ansible all -m command -a "sleep 100"

把默认模块设置成shell模块
vim /etc/ansible/ansible.cfg
module_name = shell

3、在远程主机上运行ansible服务器上的脚本script

script模块(在远程主机上运行ansible服务器上的脚本,不具备幂等性)
如:
[root@ubunt ~]# ansible all -m script -a 'test.sh'  #写完整脚本路径

4、复制ansible服务器主控端或远程主机的文件到远程主机 copy模块

copy模块
功能:1、把ansible服务器主控端文件复制到远程主机。2、把远程主机上的文件复制到远程主机
src:控制端的源文件路径
content:源文件的内容
dest:被控制端的文件路径
owner:属主
group:属组
mode:权限
backup:是否备份
remote_src: no是默认值,表示src文件在ansible主机,yes表示src文件在远程主机  #重要的指令

范例
#如目标存在,默认覆盖,此处指定先备(没有写remote_src,表明文件在ansible主控端) 
ansible webservers -m copy -a "src=/root/test1.sh dest=/tmp/test2.sh owner=wang mode=600 backup=yes" 
#指定内容,直接生成目标文件 
ansible webservers -m copy -a "content='fan 123456\nchao 654321\n' dest=/etc/rsync.pas owner=root group=root mode=0600"
#复制/etc目录自身,注意/etc/后面没有/ 
ansible webservers -m copy -a "src=/etc dest=/backup" 
#复制/etc/下的文件,不包括/etc/目录自身,注意/etc/后面有/ 
ansible webservers -m copy -a "src=/etc/ dest=/backup" 
#复制/etc/suders,并校验语法,下面的 %s 表示src指定的文件名 
ansible webservers -m copy -a "src=/etc/sudoers dest=/etc/sudoers.edit remote_src=yes validate='/usr/sbin/visudo -csf'%s"

5、用于将文件从http、https或ftp下载到被管理机节点上 get_url模块

get_url模块
功能:用于将文件从http、https或ftp下载到被管理机节点上

url   #下载文件的URL,支持HTTP,HTTPS或FTP协议 
dest  #下载到目标路径(绝对路径),如果目标是一个目录,就用原文件名,如果目标设置了名称就用目标 设置的名称 owner #指定属主 
group #指定属组 
mode  #指定权限 
force #如果yes,dest不是目录,将每次下载文件,如果内容改变替换文件.如果no,则只有在目标不存在 时才会下载 checksum  #对目标文件在下载后计算摘要,以确保其完整性         
#示例: checksum="sha256:D98291AC[...]B6DC7B97",
      checksum="sha256:http://example.com/path/sha256sum.txt" 
url_username #用于HTTP基本认证的用户名. 对于允许空密码的站点,此参数可以不使用 `url_password' url_password #用于HTTP基本认证的密码. 如果未指定`url_username'参数,则不会使用 `url_password'参数 
validate_certs #如果“no”,SSL证书将不会被验证. 适用于自签名证书在私有网站上使用 timeout  #URL请求的超时时间,秒为单位

范例
下载并MD5验证
ansible webservers -m get_url -a 'url=http://nginx.org/download/nginx-1.18.0.tar.gz dest=/usr/local/src/nginx.tar.gz checksum="md5:b2d33d24d89b8b1f87ff5d251aa27eb8"'

去webservers下的机器上去查看是否完成(下完不带版本号)
[root@ubuntu2004 ~]#ls /usr/local/src/
nginx.tar.gz

6、从被控制机上把文件拉到控制机上(不能拉文件夹,和copy相反)Fetch模块

Fetch模块
src      #被控制端的源文件路径,只支持文件 
dest     #ansible控制端的目录路径

范例1:ansible all -m fetch -a 'src=/etc/os-release dest=/data/os'(目录无需创建,自动生成)
范例2:打包 ansible all -a 'tar cf /root/etc.tar /etc'
拉到控制端  ansible all -m fetch -a 'src=/root/etc.tar dest=/data/'

7、修改文件属性,创建文件、目录和软链接等 file模块

file模块
path       #在被控端创建的路径 (和dest,name功能相同)
owner      #属主 
group      #属组 
mode       #权限 
recurse    #yes表示递归授权
state      #状态 
=touch     #创建文件
=directory #创建目录 
=link      #软链接 
=hard      #硬链接 
src        #创建软硬链接时,指定源文件
absent     #删除

范例:创建文件夹
[root@ubunt ~]# ansible all -m file -a 'path=/data/ state=directory'
创建文件(如果没有文件夹,会失败)
[root@ubunt ~]# ansible all -m file -a 'path=/data/test.txt state=touch'
创建软链接(对/etc/hosts创建软连接为/data/hosts.links)
[root@ubunt ~]# ansible all -m file -a 'src=/etc/hosts dest=/data/hosts.links state=link'
删除软链接
[root@ubunt ~]# ansible all -m file -a 'path=/data/hosts.links state=absent'

递归修改目录属性,但不递归至自目录
ansible all -m file -a "path=/data/mysql state=directory owner=mysql group=mysql"

递归修改目录及自目录的属性
ansible all -m file -a "path=/data/mysql state=directory owner=mysql group=mysql recurse=yes"

8、检查文件或文件系统的状态 stat模块

stat模块
path #文件/对象的完整路径(必须)

范例:ansible 127.0.0.1 -m stat -a 'path=/etc/passwd'

9、解包解压缩 unarchive模块

unarchive模块
将ansible主机上的压缩包传到远程主机后解压至特定目录,设置remote_src=no,此为默认值,可省略
将远程主机上或非ansible的其他主机的某个压缩包压缩到远程主机本机的指定路径下,需要设置remote_src=yes

remote_src #和copy功能一样且选项互斥,yes表示源文件在远程被控主机或其它非ansible的其它主机上如网上,no表示文件在ansible主机上,默认值为no, 此选项代替copy选项

copy #默认为yes,当copy=yes,拷贝的文件是从ansible主机复制到远程主机上,如果设置为copy=no, 会在远程主机上寻找src源文件,此选项已废弃 
src #源路径,可以是ansible主机上的路径,也可以是远程主机(被管理端或者第三方主机)上的路径,如果 是远程主机上的路径,则需要设置remote_src=yes 
dest #远程主机上的目标路径 
owner #默认递归 
group #默认递归 
mode  #设置解压缩后的文件权限,默认递归 
creates=/path/file #当绝对路径/path/file不存在时才会执行

范例:把互联网上的包直接下载解包(要求被控制端需要有账号,存放目录需提前存在)
ansible all -m unarchive -a 'src=https://nginx.org/download/nginx-1.20.2.tar.gz dest=/data remote_src=yes owner=wang group=wang'
[root@ubuntu2004 ~]#ls /data/
nginx-1.20.2  test.txt

10、打包压缩保存在被管理节点 Archive模块

Archive 模块
path    #需要压缩的文件或目录
dest    #压缩后的文件
format  #压缩格式,支持gz,bz2,xz,tar,zip

范例:
ansible webservers -m archive  -a 'path=/var/log/ dest=/data/log.tar.bz2 format=bz2 owner=wang mode=0600'

11、管理主机名 Hostname模块

Hostname 模块
name #修改后的主机名称

范例:
ansible 10.0.0.8 -m hostname -a 'name=web1'

12、计划任务 cron模块

cron 模块
支持时间:minute,hour,day,mouth,weekday
name      #描述脚本的作用 
minute    #分钟 
hour      #小时 
day       #日
mouth     #月
weekday   #周 
user      #任务由哪个用户运行;默认root 
job       #任务

范例:
备份数据库脚本(需要提前把脚本放在被管理机上)
[root@centos8 ~]#cat /root/mysql_backup.sh 
#!/bin/bash 
mysqldump -A -F --single-transaction --master-data=2 -q -uroot |gzip> /data/mysql_`date +%F_%T`. sql.gz 


创建任务
ansible 10.0.0.8 -m cron -a 'hour=2 minute=30 weekday=1-5 name="backup mysql" job=/root/mysql_backup.sh'
查看任务:
[root@RS1 ~]#crontab -l
#Ansible: backup mysql
30 2 * * 1-5 /root/mysql_backup.sh

禁用计划任务(disabled=yes,启用disabled=no,删除state=absent)
ansible 10.0.0.8 -m cron -a 'hour=2 minute=30 weekday=1-5 name="backup mysql"  job=/root/mysql_backup.sh disabled=yes'
[root@RS1 ~]#crontab -l
#Ansible: backup mysql
#30 2 * * 1-5 /root/mysql_backup.sh

13、软件管理包 yum和apt模块

yum和apt模块
name           #软件包名称 
state          #状态  
=present       #安装,此为默认值 
=absent        #删除  
=latest        #最新版 
list           #列出指定包 enablerepo #启用哪个仓库安装 
disablerepo    #不使用哪些仓库的包 
exclude        #排除指定的包 
validate       #是否检验,默认为yes

范例:
[root@ubunt ~]# ansible 10.0.0.102 -m apt -a 'name=apache2 state=present' #安装
[root@ubunt ~]# ansible 10.0.0.102 -m apt -a 'name=apache2 state=absent autoremove=yes purge=yes' #卸载

14、实现yum仓库配置管理 yum_repository模块

yum_repository 模块
name          #仓库id 
description   #仓库描述名称,对应配置文件中的name= 
baseurl       #仓库的地址 
gpgcheck      #验证开启 
gpgkey        #仓库公钥路径
state

范例:创建zabbix agent仓库
ansible 10.0.0.8 -m yum_repository -a 'name=zabbix description="zabbix repo" baseurl="https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/$releasever/$basearch /" gpgcheck=no'

删除zabbix agent仓库
ansible 10.0.0.8 -m yum_repository -a 'name=zabbix state=absent'

15、管理服务service(与systemd功能相似)

name        #服务名称
state       #服务状态
=started    #启动
=stopped    #停止
=restarted  #重启
=reloaded   #重载
enabled     #开启自启动,yes开机启动,no开机不启动
daemon_reload   #加载新的配置文件,适用于systemd模块

范例:[root@ubunt ~]# ansible 10.0.0.8 -m service -a 'name=apache2 state=started' #启动
[root@ubunt ~]# ansible 10.0.0.102 -m apt -a 'name=apache2 enabled=yes' #开机启动

16、管理用户 user模块

user 模块
name              #创建的名称 
uid               #指定uid 
group             #指定基本组 
shell             #登录shell类型默认/bin/bash 
create_home       #是否创建家目录,默认会创建家目录,no不创建 
password          #设定对应的密码,必须是加密后的字符串才行,否则不生效 
system            #yes表示系统用户 
groups            #附加组 
append            #追加附加组使用,yes表示增加新的附加组 
state             #absen删除 
remove            #yes表示删除用户时将家目录一起删除 
generate_ssh_key  #创建私钥 
ssh_keyu_bits     #私钥位数 
ssh_key_file      #私钥文件路径

范例:
创建用户
[root@ubunt ~]# ansible all -m user -a 'name=nginx comment=nginx uid=88 group=nginx 
groups="root,daemon" shell=/sbin/nologin system=yes create_home=no home=/data/nginx non_unique=yes'
删除用户(#remove=yes表示删除用户及家目录等数据,默认remove=no)
[root@ubunt ~]# ansible all -m user -a 'name=nginx state=absent remove=yes'

17、管理组 group模块

group 模块
name      #指定组名称
gid       #指定gid
state
   =      #创建,默认
   =      #删除
system    #是否是系统组

范例:
创建组:
ansible all -m group -a 'name=nginx gid=88 system=yes'
删除组:
ansible all -m group -a 'name=nginx state=absent'

18、修改一行的文件内容 lineinfile模块(类似于sed)

path                      #被控端文件的路径 
regexp                    #正则匹配语法格式,表示被替换的内容 
line                      #替换为的内容 
state                     #absent表示删除 
insertafter insertbefore  #插入到替换内容后面,如和regexp同时存在,只在没找到与regexp匹配时才使用 
backrefs                  #支持后面引用,yes和no 
backup                    #修改前先备份 
create                    #如果文件不存在,则创建,默认不存在会出错
mode                      #指定权限 
owner                     #指定用户 
group                     #指定组

#注意 
regexp参数 :使用正则表达式匹配对应的行,当替换文本时,如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换,当删除文本时,如果有多行文本都能被匹配,这么这些行都会被删除.

范例:
修改监听端口
ansible webservers -m lineinfile -a "path=/etc/httpd/conf/httpd.conf regexp='^Listen' line='Listen 8080'"

修改SELinux
ansible all -m lineinfile -a "path=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'"

19、多行修改替换 replace模块

replace模块 基于正则进行匹配和替换

path            #被控端文件的路径 
regexp          #正则匹配语法格式,表示被替换的内容 
replace         #替换为的内容 
after           #插入到替换内容前面
before          #插入到替换内容后面 
backup          #修改前先备份 
mode            #指定权限 
owner           #指定用户 
group           #指定组

范例:
ansible all -m replace -a "path=/etc/fstab regexp='^(UUID.*)' replace='#\1'"   ansible all -m replace -a "path=/etc/fstab regexp='^#(UUID.*)' replace='\1'"

20、管理SELinux策略 cat /etc/selinux/config

三种状态 enforcing,开启安全加固策略。permissive,报警但不阻止。disabled,关闭

policy     #指定SELINUXTYPE=targeted
state      #指定SELINUX=disabled

范例:ansible 10.0.0.8 -m selinux -a 'state=disabled' 只支持修改成disabled策略

21、重启 reboot模块

reboot 模块
msg               #重启提示 
pre_reboot_delay  #重启前延迟时间的秒数 
post_reboot_delay #重启后延迟时间的秒数后,再验证系统正常启动
reboot_timeout    #重启后延迟时间再执行测试成功与否的命令
test_command      #执行测试成功与否的命令

范例:修改SELinux策略后重启
ansible 10.0.0.8 -m reboot

22、挂载和卸载系统 mount模块

mount 模块
src        #源设备路径,或网络地址 
path       #挂载至本地哪个路径下 
fstype     #设备类型; 
nfs opts   #挂载的选项 
state      #挂载还是卸载  
=present   #永久挂载,但没有立即生效  
=absent    #卸载临时挂载,并删除永久挂载  
=mounted   #永久和临时挂载  
=unmounted #临时卸载

范例

修改fstab文件永久挂载,但不会立即生效
mount webservers -m mount -a 'src="UUID=b3e48f45-f933-4c8e-a700-22a159ec9077" path=/home fstype=xfs opts=noatime state=present'

取消临时挂载
mount webservers -m mount -a 'path=/home fstype=xfs opts=noatime state=unmounted'

永久挂载,并立即生效
ansible webservers -m mount -a 'src=10.0.0.8:/data/wordpress path=/var/www/html/wp-content/uploads opts="_netdev" state=mounted'

永久挂载,并立即生效
ansible webservers -m mount -a 'src=10.0.0.8:/data/wordpress path=/var/www/html/wp-content/uploads fstype=nfs state=absent'

23、收集主机的系统信息,可用gather_facts:no来禁止Ansible收集facts信息

setup 模块

filter 指定过滤条件
范例
ansible all -m setup(默认收集所有信息)

ansible all -m setup -a 'filter=ansible_processor_vcpus' 只找出cpu
还可以取IP
ansible all -m setup -a 'filter=ansible_all_ipv4_addresses'

24、输出信息,并且通过msg定制输出信息内容,功能类似于echo命令

debug 模块

msg   #指定命令输出的信息
var   #指定变量名,和msg互斥
verbosity   #详细度

范例:没有指定命令输出的信息默认输出"Hello world"
ansible 10.0.0.8 -m debug

25、修改内核参数 sysctl 模块(内核优化)

sysctl 模块

name   #内核参数
value  #指定值
state  #是否保存在sysctl.conf文件中,默认present
sysctl_set  #使用sysctl -w验证值生效

范例:

26、管理资源限制 pam_limits模块

- name: Change Limit /etc/security/limit.conf
  pam_limits:
    domain: "*"
    limit_type: "{{ item.limit_type }}"
    limit_item: "{{ item.limit_item }}"
    value: "{{ item.value }}" 
  loop:
    - { limit_type: 'soft', limit_item: 'nofile',value: '100000' }
    - { limit_type: 'hard', limit_item: 'nofile',value: '10000' }

标签:10.0,Ansible,src,安装,etc,ansible,模块,root
From: https://blog.51cto.com/mfc001/6405564

相关文章

  • 1、Ansible安装及Ansible各模块作用、使用方法
    Ansible功能1、批量执行远程命令,可以对远程的多台主机同时进行命令的执行2、批量安装和配置软件服务,可以对远程的多台主机进行自动化的方式配置和管理各种服务3、编排高级的企业级复杂的IT架构任务,Ansible的Playbook和role可以轻松实现大型的IT复杂架构4、提供自动化运维......
  • 2、Ansible如何写playbook及playbook中使用变量
    ansible的playbook(按照yaml格式)三种常见的数据格式XMLJSONYAMLYAML支持的几种常用数据类型标量:单个的、不可再分的值对象:键值对的集合(字典)数组:一组按次序排列的值(列表)playbook命令--syntax,--syntax-check#语法检查,功能相当于bash-n-C--check#......
  • 3、Ansible高级功能--loop、until循环,with_lines逐行处理,条件判断when等
    ansible的高级功能1、loop循环迭代:当有需要重复性执行的任务时,可以使用迭代机制范例:初始化安装软件包----hosts:webserversremote_user:roottasks-name:installsomepackagesyum:name={{item}}state=presentwith_items:......
  • 4、Ansible模板--用于根据每个主机的不同环境而为生成不同的文件
    ansible模板模板是一个文本文件,可以用于根据每个主机的不同环境而为生成不同的文件模板文件中支持嵌套jinja2语言的指令,来实现变量,条件判断,循环等功能需要使用template模块实现文件的复制到远程主机,但和copy模块不同,复制过去的文件每个主机可以会有所不同jinja2语言http:......
  • ubuntu 20.04安装(升级)cmake
    ubuntu20.04安装(升级)cmake-知乎(zhihu.com)    ......
  • 学习笔记——VMWare的使用和Windows的安装
    2023-06-02一、VMware介绍1.1 VMware即虚拟机软件,用于模拟计算机(虚拟机/客户机)实体机(是实实在在的计算机)(1)特点①多启动系统一个时刻只能运行一个系统,切换时必须重启。②虚拟PC软件一台机器上同时运行多个系统二、在虚拟机中安装操作系统2.1安装前的准备工作(1)准备安装......
  • CentOS安装jdk的三种方法
    方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创建java目录 [root@localhost~]#mkdir/usr/java[root@localhost~]#cd/usr/java2.下载,然后解压[root@localhostjava]#curl-Ohttp://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x6......
  • fastDFS + nginx安装
    一、环境centos7.6二、下载安装包1、下载fastdfscd/usr/local/srcwgethttps://github.com/happyfish100/fastdfs/archive/refs/tags/V6.07.tar.gz-Ofastdfs-6.07.tar.gz2、下载libfastcommonwget-Olibfastcommon-1.0.53.tar.gzhttps://github.com/happyfis......
  • Linux 下安装JDK1.8-解压版
    一、安装环境操作系统:RedHatEnterpriseLinux664位(版本号6.6)JDK版本:1.8工具:Xshell5、Xftp5说明:本文是通过Xshell5工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样。二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装......
  • 红帽7.1安装Zabbix 3.4
    【注意:需要使用root用户进行安装】一、将红帽yum源改为centos的yum源1.红帽yum源收费,使用centos的yum源安装查看yum源:rpm-qa|grepyum2.不检查依赖直接删除所有yum包rpm-qa|grepyum|xargsrpm-e--nodeps3.下载新的yum包(https://mirrors.aliyun.com/centos/7.6.1810/os/x86......