понедельник, 10 декабря 2018 г.

Ansible playbook для создания локального репозитария yum


    Напишем сценарий для автоматического развертывания локального репозитария для предыдущей статьи:
Создаем свой репозиторий yum в локальной сети (CentOs, Red Hat) 




---
# необходимо добавить секцию [repos] в инвентори файл
- hosts: repos
  become: yes
  tasks:

# создаем дерево каталогов
    - name: Create directory tree
      file: path="/u01/{{item}}" state=directory
      with_items:
        - rpms

# добавим репозиторий nginx
    - file: path="/etc/yum.repos.d/{{item}}.repo" state=touch
      with_items:
      - nginx

    - name: add admin repo
      blockinfile:
        dest: /etc/yum.repos.d/{{item.name}}.repo
        block: |
          [{{item.name}}]
          name={{item.name}} repo
          baseurl={{item.url}}
          gpgcheck=0
          enabled=1
      with_items:
        - { name: nginx, url: "http://nginx.org/packages/mainline/centos/7/x86_64" }

# установка необходимых приложений   
    - name: install apps
      yum: pkg={{item}} state=latest update_cache=yes
      with_items:
        - createrepo
        - nginx
        - libselinux-python
        - deltarpm
        - python-deltarpm
        - libxml2-python
            
# создаем конфиг файл nginx и настраиваем
    - file: path=/etc/nginx/conf.d/default.conf state=absent
    - file: path=/etc/nginx/conf.d/default.conf state=touch

    - name: add nginx config
      blockinfile:
        dest: /etc/nginx/conf.d/default.conf
        block: |
          server {
            listen     80;
            server_name  localhost;
            root /u01;
            location / {
              index  index.html index.htm;
            }
            location /rpms {
                  autoindex on;
            }
          }

# отключаем Selinux
    - selinux: policy=targeted state=permissive

# запускаем демон nginx и добавляем в автозагрузку
    - name: start nginx for repo
      service: name=nginx state=restarted enabled=yes

# создаем индекс файл для пакетов rpm
    - name: create repository
      shell: createrepo /u01/rpms/

Комментариев нет:

Отправить комментарий

Популярные сообщения