Jenkins и ALT Linux

Была как-то у меня задача поставить Jenkins на ALT Linux. Как вы знаете, эта ОС достаточно специфична, в виду использования своего мощного репозитория sisyphus, а также менеджера пакетов apt-rpm. Кроме того, многие пакеты имеют своё неповторимое название.

Итак, ниже YAML-playbook Ansible для установки Jenkins, а также файл inventory для работы нашего playbook:

########################### WARNING!!!! ##########################
#                                                                #
#    After install Jenkins, you must change listen port of it    #
#    from 8080 to 8081 in:                                       #
#                                                                #
#         /usr/lib/systemd/system/jenkins.service                #
#                                                                #
#    Also, where is now Jenkins repo for apt-rpm OS. In this     #
#    case, you must download latest Jenkins rpm yourself.        #
#                                                                #
##################################################################
---
- name: Install Jenkins
  hosts: altjenkins
  become: yes

  tasks:
  - name: Pre-install needed packages
    apt_rpm: pkg={{ item }} update_cache=yes state=present
    loop: [ 'ca-certificates', 'fontconfig', 'java-11-openjdk' ]

  - name: Copy rpm
    copy: src=files/jenkins-2.379-1.1.noarch.rpm dest=/home/admin/jenkins-2.379-1.1.noarch.rpm owner=admin mode=0644

  - name: Install Jenkins package
    apt_rpm: 
      name: /home/admin/jenkins-2.379-1.1.noarch.rpm
      state: present

Файл inventory:

[test_WEB]

altjenkins ansible_host=192.168.88.17

В заголовке скрипта я оставил напоминание о том, что в ALT Linux стандартный порт для Jenkins занят встроенным web-приложением для управления ОС, поэтому неплохо было бы поменять порт, и написал где.

Так же стоит обратить внимание на то, что rpm-пакет придётся скачать самостоятельно, лучше на официальном сайте: https://get.jenkins.io/redhat/. Затем, копируем пакет в папку files/, чтобы наш playbook мог использовать его.

Естественно, мы должны обеспечить доступность по протоколу SSH для ansible с нашего компьютера до сервера, где хотим настроить Jenkins. Я обычно использую авторизацию по ключам и создаю отдельного пользователя ansible, но вы также можете прописать ansible_user (любой пользователь с правами sudo) и ansible_password (его пароль) в файле inventory:

[test_WEB]

altjenkins ansible_host=192.168.88.17 ansible_user=admin134 ansible_password=nashkrutojPa$$

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *