zoukankan      html  css  js  c++  java
  • playbook配置不同系统版本的yum源配置

    主机ip系统
    localhost(装有ansible) 192.168.44.128 rhel8
    node2 192.168.44.131 rhel8
    node3 192.168.44.132 rhel7

    结构树一览

    [root@localhost ~]# tree .
    .
    ├── anaconda-ks.cfg
    └── yum
        ├── ansible.cfg
        ├── inventory
        └── yum.yml

    准备环境

    [root@localhost ~]# mkdir yum
    [root@localhost ~]# cd yum/
    [root@localhost yum]# cp /etc/ansible/ansible.cfg .
    [root@localhost yum]# vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.44.131 node2
    192.168.44.132 node3
    [root@localhost yum]# vim ansible.cfg 
    inventory      = ./inventory
    [root@localhost yum]# vim inventory
    [centos]
    node2
    
    [redhat]
    node3
    
    [root@localhost yum]# cd ~
    [root@localhost ~]# ssh-keygen -t rsa
    [root@localhost ~]# ssh-copy-id root@192.168.44.131
    [root@localhost ~]# ssh-copy-id root@192.168.44.132
    [root@localhost ~]# ansible node2 -m ping
    [root@localhost ~]# ansible node3 -m ping

    编写yum的playbook

    [root@localhost ~]# vim yum/yum.yml
    ---
    - hosts: all
      vars:
        baseurl_8: https://mirrors.aliyun.com/epel/8/Modular/x86_64/
        baseurl_7: https://mirrors.aliyun.com/epel/7/x86_64/
    
      tasks:
        - name: yum config for 8
          yum_repository:
            name: "{{ item }}"
            baseurl: https://mirrors.aliyun.com/centos/8/{{ item }}/x86_64/os/
            enabled: yes
            gpgcheck: no
            mode: 0644
            file: "{{ item }}"
            description: "{{ item }}"                               
            state: present
          loop:
            - BaseOS
            - AppStream
          when: >
            ( ansible_facts["distribution"] == "RedHat" and
              ansible_facts["distribution_major_version"] == "8" )
            or
            ( ansible_facts["distribution"] == "CentOS" and
              ansible_facts["distribution_major_version"] == "8" )
    
        - name: yum config for 7
          yum_repository:
            name: base
            baseurl: https://mirrors.aliyun.com/centos/7/os/x86_64/
            enabled: yes
            gpgcheck: no
            mode: 0644
            file: base
            description: base                               
            state: present
          when: >
            ( ansible_facts["distribution"] == "RedHat" and
              ansible_facts["distribution_major_version"] == "7" )
            or
            ( ansible_facts["distribution"] == "CentOS" and
              ansible_facts["distribution_major_version"] == "7" )
            
        - name: yum config epel for 8
          yum_repository:
            name: epel
            baseurl: "{{ baseurl_8 }}"
            enabled: yes
            gpgcheck: no
            mode: 0644
            file: epel
            description: epel
            state: present
          when: >
            ( ansible_facts["distribution"] == "RedHat" and
              ansible_facts["distribution_major_version"] == "8" )
            or
            ( ansible_facts["distribution"] == "CentOS" and
              ansible_facts["distribution_major_version"] == "8" )
              
        - name: yum config epel for 7
          yum_repository:
            name: epel
            baseurl: "{{ baseurl_7 }}"
            enabled: yes
            gpgcheck: no
            mode: 0644
            file: epel
            description: epel
            state: present
          when: >
            ( ansible_facts["distribution"] == "RedHat" and
              ansible_facts["distribution_major_version"] == "7" )
            or
            ( ansible_facts["distribution"] == "CentOS" and
              ansible_facts["distribution_major_version"] == "7" )

    运行playbook

    [root@localhost ~]# cd yum/
    [root@localhost yum]# ansible-playbook yum.yml

    查看效果

    //redhat8
    [root@node2 ~]# yum repolist
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    Repository BaseOS is listed more than once in the configuration
    Repository AppStream is listed more than once in the configuration
    repo id                                    repo name
    AppStream                                  AppStream
    BaseOS                                     BaseOS
    epel                                       epel
    
    //redhat7
    [root@node3~]# yum repolist
    Loaded plugins: product-id, subscription-manager
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    repo id                                  repo name                              status
    base                                     base                                   10,072
    epel                                     epel                                      105
    repolist: 10,177
  • 相关阅读:
    Webservice或WebAPi Post类型传参,类对象格式转换
    WebService 客户端上传图片,服务器端接收图片并保存到本地
    WebAPI 本地调试
    Quartz 计时器使用之 给主线程窗体控件赋值方法
    微信APP支付
    微信H5支付
    微信JSAPI支付
    微信支付
    循环table 示例
    前台向后台传数组处理
  • 原文地址:https://www.cnblogs.com/chensongling/p/14275486.html
Copyright © 2011-2022 走看看