Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: Git not found when installing requirements with src #2552

Open
szuro opened this issue Nov 20, 2024 · 1 comment
Open

Problem: Git not found when installing requirements with src #2552

szuro opened this issue Nov 20, 2024 · 1 comment

Comments

@szuro
Copy link

szuro commented Nov 20, 2024

Issue

Unable to execute task due to inability to install all roles from requirements.yml.
The reason seems to be that semaphore can't use git even thou the repo with playbooks is cloned just seconds before.

The issue occurs when a role with src property is defined. When removing this property, tasks run as expected.

Impact

Ansible (task execution)

Installation method

Docker

Database

Postgres

Browser

Firefox

Semaphore Version

v2.10.32-f33944e-1729509451

Ansible Version

ansible [core 2.16.12]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/semaphore/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /opt/semaphore/apps/ansible/9.4.0/venv/lib/python3.11/site-packages/ansible
  ansible collection location = /home/semaphore/.ansible/collections:/usr/share/ansible/collections
  executable location = /opt/semaphore/apps/ansible/9.4.0/venv/bin/ansible
  python version = 3.11.10 (main, Sep 11 2024, 09:58:40) [GCC 13.2.1 20231014] (/opt/semaphore/apps/ansible/9.4.0/venv/bin/python3)
  jinja version = 3.1.4
  libyaml = True

Logs & errors

Task error

4:15:08 PM Task 7 added to queue
4:15:09 PM Started: 7
4:15:09 PM Run TaskRunner with template: Refresh certs
4:15:09 PM Preparing: 7
4:15:10 PM Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
4:15:11 PM Updating Repository [email protected]:szuro/homelab.git
4:15:12 PM Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
4:15:13 PM From github.com:szuro/homelab
4:15:13 PM  * branch            hl         -> FETCH_HEAD
4:15:13 PM Already up to date.
4:15:13 PM installing static inventory
4:15:13 PM No /tmp/semaphore/repository_1_1/collections/requirements.yml file found. Skip galaxy install process.
4:15:13 PM No /tmp/semaphore/repository_1_1/requirements.yml file found. Skip galaxy install process.
4:15:13 PM Starting galaxy role install process
4:15:14 PM [WARNING]: - pavlozt.certbot_cloudflare was NOT installed successfully: could
4:15:14 PM not find/use git, it is required to continue with installing
4:15:14 PM https://github.com/pavlozt/ansible-role-certbot-cloudflare
4:15:14 PM ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
4:15:14 PM Running galaxy failed: exit status 1
4:15:14 PM Running app failed: exit status 1

Manual install

automation:~$ whoami 
semaphore

automation:~$ ansible-galaxy  role install -r /tmp/semaphore/repository_1_1/roles/requirements.yml
Starting galaxy role install process
- extracting pavlozt.certbot_cloudflare to /home/semaphore/.ansible/roles/pavlozt.certbot_cloudflare
- pavlozt.certbot_cloudflare (v1.3.3) was installed successfully
- adding dependency: geerlingguy.pip (2.2.0)
- adding dependency: geerlingguy.certbot (5.1.0)
- downloading role 'traefik', owned by arillso
- downloading role from https://github.com/arillso/ansible.traefik/archive/1.0.2.tar.gz
- extracting arillso.traefik to /home/semaphore/.ansible/roles/arillso.traefik
- arillso.traefik (1.0.2) was installed successfully
- downloading role 'pip', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-pip/archive/2.2.0.tar.gz
- extracting geerlingguy.pip to /home/semaphore/.ansible/roles/geerlingguy.pip
- geerlingguy.pip (2.2.0) was installed successfully
- downloading role 'certbot', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-certbot/archive/5.1.0.tar.gz
- extracting geerlingguy.certbot to /home/semaphore/.ansible/roles/geerlingguy.certbot
- geerlingguy.certbot (5.1.0) was installed successfully

automation:~$ ansible-galaxy  collection install -r /tmp/semaphore/repository_1_1/roles/requirements.yml
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/community-zabbix-3.0.4.tar.gz to /home/semaphore/.ansible/tmp/ansible-local-1210fjtmb5e/tmptp829u9d/community-zabbix-3.0.4-gwuai0t7
'containers.podman:1.12.0' is already installed, skipping.
Installing 'community.zabbix:3.0.4' to '/home/semaphore/.ansible/collections/ansible_collections/community/zabbix'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-posix-1.3.0.tar.gz to /home/semaphore/.ansible/tmp/ansible-local-1210fjtmb5e/tmptp829u9d/ansible-posix-1.3.0-c5i3wzm4
community.zabbix:3.0.4 was installed successfully
'ansible.windows:2.3.0' is already installed, skipping.
'community.mysql:3.9.0' is already installed, skipping.
'ansible.netcommon:5.3.0' is already installed, skipping.
'community.postgresql:3.4.0' is already installed, skipping.
'ansible.utils:2.12.0' is already installed, skipping.
Installing 'ansible.posix:1.3.0' to '/home/semaphore/.ansible/collections/ansible_collections/ansible/posix'
Downloading https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/community-general-3.7.0.tar.gz to /home/semaphore/.ansible/tmp/ansible-local-1210fjtmb5e/tmptp829u9d/community-general-3.7.0-yl__uumr
ansible.posix:1.3.0 was installed successfully
Installing 'community.general:3.7.0' to '/home/semaphore/.ansible/collections/ansible_collections/community/general'
community.general:3.7.0 was installed successfully

Manual installation - system information

uname -a

Linux operations 6.8.0-47-generic #47-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 27 21:40:26 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

rev proxy

Version: 3.2.0
Codename: munster
Go version: go1.23.2
Built: 2024-10-28T14:49:00Z
OS/Arch: linux/amd64

Configuration

env

EMAPHORE_LDAP_SERVER=REDACTED
PATH=/opt/semaphore/apps/ansible/9.4.0/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ANSIBLE_VERSION=9.4.0
VIRTUAL_ENV=/opt/semaphore/apps/ansible/9.4.0/venv
SEMAPHORE_LDAP_ENABLE=True
SEMAPHORE_LDAP_BIND_DN=REDACTED
SEMAPHORE_LDAP_SEARCH_DN=REDACTED
SEMAPHORE_PORT=3000
SEMAPHORE_ADMIN_NAME=Admin
SEMAPHORE_ADMIN=Admin
SEMAPHORE_GIT_CLIENT=cmd_git
SEMAPHORE_LDAP_NEEDTLS=True
SEMAPHORE_DB_DIALECT=postgres
SEMAPHORE_DB_PASS=REDACTED
SEMAPHORE_ADMIN_EMAIL=admin@localhost
SEMAPHORE_ACCESS_KEY_ENCRYPTION=REDACTED
container=podman
SEMAPHORE_DB_NAME=semaphore
SEMAPHORE_LDAP_BIND_PASSWORD=REDACTED
SEMAPHORE_DB_HOST=REDACTED
SEMAPHORE_DB_USER=app_semaphore
SEMAPHORE_LDAP_SEARCH_FILTER=REDACTED
SEMAPHORE_ADMIN_PASSWORD=REDACTED
HOSTNAME=REDACTED

roles/requirements.yml

---
collections:
  - name: community.zabbix
    version: 3.0.4
  - name: ansible.posix
    version: 1.3.0
  - name: community.general
    version: 3.7.0
  - name: containers.podman
roles:
  - name: pavlozt.certbot_cloudflare
    src: https://github.com/pavlozt/ansible-role-certbot-cloudflare
    version: v1.3.3
  - name: arillso.traefik

HOME=/home/semaphore

Additional information

Everything works after removing the src. Manual installation works just fine with or without src

@replicajune
Copy link

Hey there,

Facing the same issue here. Im using the container image of semaphore available on docker hub, so manual install is a bit more tricky here.

git itself is available in the image and I can use it where I enter the container. I'm thinking maybe the path is overridden before galaxy is triggered and is missing the path where git is ? Unfortunately my go skills aren't there yet, so I can't point out where in the app yhat would be. Just a thought..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants