ansible playbook脚本自动判断系统类型并升级rpm包

使用说明:
相关系统的tar包需提前准备,而且tar包中不要带文件夹(只包含rpm包才可以)。

准备工作:
主机列表文件内容:

[root@ansible_host redhat]# cat redhat.txt 
[redhat]
192.168.254.11 ansible_ssh_user=xp ansible_ssh_pass=password ansible_sudo_pass=password 
192.168.254.125 ansible_ssh_user=xp ansible_ssh_pass=password ansible_sudo_pass=password

步骤一、在目标主机上创建rpm包存放目录:
create_dir.yml

---
- hosts: redhat
  gather_facts: False
  tasks:
   - name: Create a directory if it does not exist
     file:
      path: /tmp/update0715
      state: directory
      mode: '0755'

命令执行:ansible-playbook create_dir.yml -i redhat.txt

步骤二、判断目标主机的系统版本,并上传rpm包
cat playbook1_upload.yml

---
- hosts: redhat
  gather_facts: True
  tasks:
   - name: copy redhat7 packages
     copy: 
         src: /tmp/redhat7.tar
         dest: /tmp/redhat7.tar
         mode: '0755'
     when: ansible_distribution == "RedHat" and ansible_distribution_major_version == "7"
   - name: copy redhat6 packages
     copy: 
         src: /tmp/redhat6.tar
         dest: /tmp/redhat6.tar
         mode: '0755'
     when: ansible_distribution == "RedHat" and ansible_distribution_major_version == "6"

步骤三、在目标主机上解压tar包
cat playbook2_tar.yml

---
- hosts: redhat
  gather_facts: yes
  tasks:
   - name: Extract
     unarchive:
       src: /tmp/redhat{{ansible_distribution_major_version}}.tar
       dest: /tmp/update0715
       remote_src: yes

步骤四、执行升级命令:

ansible -i redhat all -m shell -a 'cd /tmp/update0715;sudo rpm -Fvh *.rpm' -b

rpm验证:

ansible -i redhat.txt redhat -m shell -a 'rpm -qa ***'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值