2022-12-12

GitLab runner on Windows with bash shell on windows contianer on Docker

As part of your pipeline, you may need to perform browser testing across different platforms/environments. To minimize testing time, it's best to use a consistent shell scripting language across platforms.

One solution is to use the bash shell on Windows with the shell executor, which you can implement by following this guide: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3503. Alternatively, you can use pwsh across all platforms.

If you plan to use the docker-windows executor, you'll need a GitLab helper container image with bash support. You can create one for yourself by following this guide: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/3779.

For building the application image, consider using the windowscore or windowsserver (for GUI applications) base image. To manage and install applications, use choco.

 

FROM mcr.microsoft.com/powershell:lts-windowsserver-ltsc2022

ARGS CHROME_VERSION=
108.0.5359.99

RUN choco install -y google-chrome-stable --version $Env:
CHROME_VERSION







2018-09-21

glusterfs on fedora on break geo-replication






glusterfs geo-replication break on Fedora


From /var/log/glusterfs/geo-replication/gv0_node1/gsyncd.log

   class Changes(object):
  File "/usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py", line 19, in Changes
    use_errno=True)
  File "/usr/lib64/python2.7/ctypes/__init__.py", line 361, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libgfchangelog.so: cannot open shared object file: No such file or directory


From /usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py
class Changes(object):
    libgfc = CDLL("/usr/lib64/libgfchangelog.so", mode=RTLD_GLOBAL,
                  use_errno=True)

On Fedora/RHEL , .so symlink is provided by -devel packages. To fix install, install glusterfs-devel package.


reference: https://bugzilla.redhat.com/show_bug.cgi?id=1631595

2016-11-16

building Canon MF3010 driver on Fedora25

Building Canon MF3010 driver from source, download the source from http://support-in.canon-asia.com/contents/IN/EN/0100270810.html for UFR II/UFR II LT Printer Driver for Linux V3.20 .

[ritesh@x230t SPECS]$ diff -Naurp cndrvcups-common.spec.orig cndrvcups-common.spec
--- cndrvcups-common.spec.orig 2016-11-16 14:37:13.341877857 +0530
+++ cndrvcups-common.spec 2016-11-16 14:34:40.674461102 +0530
@@ -1,5 +1,6 @@
 %define VERSION 3.60
 %define  RELEASE 1
+%global __requires_exclude ^libcaiousb.so$

 %ifarch x86_64
 %define libs32 /usr/lib
@@ -19,6 +20,7 @@ Vendor: CANON INC.
 Group: Applications/Publishing

 Source: cndrvcups-common-%{version}-%{release}.tar.gz
+Patch0: cndrvcups-common-gmodule.patch

 BuildRoot: %{_tmppath}/%{name}-root

@@ -27,6 +29,8 @@ BuildRoot: %{_tmppath}/%{name}-root
 %prep
 %setup -q

+%patch0 -p1
+
 cd buftool
 ./autogen.sh --prefix=%{_prefix} --enable-progpath=%{_bindir} --libdir=%{_libdir} --disable-shared --enable-static


For Fedora25, gmodule needs to be added to build dependency
 
[ritesh@x230t SPECS]$ cat ../SOURCES/cndrvcups-common-gmodule.patch
--- cndrvcups-common-3.60/cngplp/configure.in 2014-12-05 15:26:04.000000000 +0530
+++ cndrvcups-common-3.60/cngplp/configure.in 2016-11-16 14:17:32.517073588 +0530
@@ -11,7 +11,7 @@ AM_PROG_CC_STDC
 AC_HEADER_STDC
 AM_PROG_LIBTOOL

-pkg_modules="gtk+-2.0 >= 2.0.0"
+pkg_modules="gtk+-2.0 >= 2.0.0 gmodule"
 PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
 AC_SUBST(PACKAGE_CFLAGS)
 AC_SUBST(PACKAGE_LIBS)


rpmbuild away and install. 

2016-09-01

Running Sky from tel.red on Fedora25

 
On Fedora 25, sky crash up on start in QT.
 
Program received signal SIGABRT, Aborted.
0x00007ffff112692f in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff112692f in raise () at /lib64/libc.so.6
#1  0x00007ffff112852a in abort () at /lib64/libc.so.6
#2  0x00007ffff200dcb1 in  () at /usr/lib/sky/lib/libQt5Core.so.5
#3  0x00007ffff24ee835 in QGuiApplicationPrivate::createPlatformIntegration() () at /usr/lib/sky/lib/libQt5Gui.so.5
#4  0x00007ffff24ee955 in QGuiApplicationPrivate::createEventDispatcher() () at /usr/lib/sky/lib/libQt5Gui.so.5
#5  0x00007ffff21cea64 in QCoreApplicationPrivate::init() () at /usr/lib/sky/lib/libQt5Core.so.5
#6  0x00007ffff24f2340 in QGuiApplicationPrivate::init() () at /usr/lib/sky/lib/libQt5Gui.so.5
#7  0x00007ffff2be62b9 in QApplicationPrivate::init() () at /usr/lib/sky/lib/libQt5Widgets.so.5
#8  0x0000000000434e41 in main ()
(gdb) quit
A debugging session is active.
 
 
Once workaround, is to let sky use the system provided qt5 libraries. 
$ rpm -q sky
sky-2.1.6327-1.fc24.x86_64
$ cd /usr/lib/sky
$ sudo mkdir old
$ sudo mv libQt5* old
$ sky


Would be nicer, if sky could use system libraries by default.



$ rpm -Uvh sky-system-qt ( meta package,installs sky and qt deps)
$ cat sky.sh
 
if shibboleet and ~/config/sky/.version is older than install
  use system library and start sky
  if start failed, disable shibboleet
else
  ld library jazz
  sky
fi

2016-08-07

installing splunkforwarder using ansible

The vars
---
  splunk_home: /opt/splunkforwarder
  splunk_exec: "{{ splunk_home }}/bin/splunk"


The playbook
---

- name: install splunk forwarder
  yum: name=splunkforwarder
       state=latest
  become: yes

# check for first time run
- stat:
    path: "{{ splunk_home }}/ftr"
  register: result_splunk_ftr_stat

- block:
    - name: setup splunk for first time run
      shell: |
        ps aux|grep splunkd && pkill -9 splunkd || true
        {{ splunk_exec }} start --accept-license --answer-yes --no-prompt
        {{ splunk_exec }} enable boot-start
  when: result_splunk_ftr_stat.stat.exists
  become: yes


# Only add servers which are not in list
# shell: /opt/splunkforwarder/bin/splunk list forward-server -auth user:pass
# register: current_fwd_list
#- block:
#    shell: "{{ splunk_exec }} add forward-server {{ splunk_server }}:{{ splunk_server_port }} -auth user:pass"
# when: item not in current_fwd_list
#  become: yes
# with_items: splunk_fwd_server

# same logic for adding logs
#    - shell: "{{ splunk_exec }} add monitor {{ item.path }} -index {{ item.idx }} -sourcetype {{ item.path }} || true"
#  with_items:  "{{ splunk_log_files }}"

and profit !

2016-06-22

adding authorized keys using ansible


You can use jinja template engine to set this

vars:
  ssh_user_key:
    - user: ritesh
      exclusive: no
      keys:
        - ritesh.centos
        - ritesh.fedora

- name: ssh user key upload
  authorized_key:
    user: "{{ item.user }}"
    exclusive: "{{ item.exclusive if item.exclusive is defined else 'no' }}"
    key: "{% for file_name in item['keys'] %} {{ key|default('') + lookup('file', file_name) }}{% if not loop.last %}{{ '\n' }}{% endif %} {% endfor %}"
  become_user: "{{ item.user }}"
  become: yes

  with_items:
    - "{{ ssh_user_key }}"
  tags:
    - setup-user-ssh-client-key



2016-05-07

zabbix 3.0.2 for RHEL6 is built

A follow up on using zabbix30 on el6 . zabbix 3.0.2 packages for RHEL6.x64 has been pushed out.

I have switched to IUS repository, over webtatic.

GitLab runner on Windows with bash shell on windows contianer on Docker

As part of your pipeline, you may need to perform browser testing across different platforms/environments. To minimize testing time, it'...