SShpass not allowed with Travis CI - ssh

Context
I have an application in which, I m using unit tests and I need to continuous deliver this. I chose to use github + travis + docker.
My Docker container is an Ubuntu 12.04 with openSSL that I cant connect from outside, and I dont have any problem with this
I need, when the travis build is okay, to connect my docker container via SSH and to run a script.
Problem
Actually, I m using :
But this doesn't work at all, because sshpass is not in the whitelist. It seems that I cant you before_install command, because I m on a container based infrastructure.
NB : The port is 22, I missed it during the picture taken.
Questions
How can I do to connect my ssh container from travis to deploy my app (only run a script that git clone / git pull if the directory exists)
Is this a good way to make it like this with travis, or does it exist something else ?
EDIT :
The travis new file :
And the log
Using worker: worker-linux-968a87ce-1.bb.travis-ci.org:travis-linux-14
system_info
Build system information
Build language: node_js
Build image provisioning date and time
Wed Feb 4 18:22:50 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
Linux Version
2.6.32-042stab090.5
Cookbooks Version
23bb455 https://github.com/travis-ci/travis-cookbooks/tree/23bb455
GCC version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
ruby-1.9.3-p551
Pre-installed Node.js versions
v0.10.36
Pre-installed Go versions
1.4.1
Redis version
redis-server 2.8.19
riak version
2.0.2
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
1.9.4
Cassandra version
2.0.9
RabbitMQ Version
3.4.3
ElasticSearch version
1.4.0
Installed Sphinx versions
2.0.10
2.1.9
2.2.6
Default Sphinx version
2.2.6
Installed Firefox version
firefox 31.0esr
PhantomJS version
1.9.8
ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/maven
Java version: 1.7.0_76, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-042stab090.5", arch: "amd64", family: "unix"
git.checkout
0.26s$ git clone --depth=50 --branch=master git://myPrivateRepo/Project
Cloning into 'user/Project'...
remote: Counting objects: 1363, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 1363 (delta 4), reused 0 (delta 0), pack-reused 1354
Receiving objects: 100% (1363/1363), 874.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (263/263), done.
Checking connectivity... done.
$ cd user/Project
$ git checkout -qf commitId
1.56s$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.38
$ node --version
v0.10.38
$ npm --version
1.4.28
$ nvm --version
0.23.3
before_install
6.72s$ sudo apt-get install sshpass
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libgeos-3.2.2
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
sshpass
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 10.5 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe sshpass amd64 1.05-1 [10.5 kB]
Fetched 10.5 kB in 0s (234 kB/s)
Selecting previously unselected package sshpass.
(Reading database ... 75363 files and directories currently installed.)
Unpacking sshpass (from .../sshpass_1.05-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up sshpass (1.05-1) ...
install
1.12s$ npm install
npm WARN package.json UnitTest#0.0.0 No description
npm WARN package.json UnitTest#0.0.0 No repository field.
npm WARN package.json UnitTest#0.0.0 No README data
0.95s$ npm test
> UnitTest#0.0.0 test /home/travis/build/user/project
> node test
First test should fail: 1) First test should fail
0 passing (8ms)
1 failing
1) First test should fail:
AssertionError: true == false
+ expected - actual
-true
+false
at Context.<anonymous> (test/first.js:8:16)
The command "npm test" exited with 0.
after_success
0.91s$ sudo sshpass -p password ssh root#ip -p 7000
Done. Your build exited with 0.

sshpass can be installed in a Travis CI container by adding:
addons:
apt:
packages:
- sshpass

I see two possible solutions to your problem:
Switch to the non-container based infrastructure of Travis-CI, by adding sudo: true in your .travis file, so you will be able to install the package you need.
Ask for the addition of sshpass in the package white list. Request can be done here: https://github.com/travis-ci/travis-ci/labels/apt-whitelist

Can you use an SSH key instead of sshpass? That way you can simply use the SSH key to connect to the Docker container instead of using a password.

Related

Chrome Remote Desktop not installing

It was showing a discrepancy when I tried to install chrome remote desktop for my google cloud compute engine(Ubuntu) through SSH. giving the following msg:
$sudo dpkg --install chrome-remote-desktop_current_amd64.deb
Selecting previously unselected package chrome-remote-desktop.
(Reading database ... 113227 files and directories currently installed.)
Preparing to unpack chrome-remote-desktop_current_amd64.deb ...
Unpacking chrome-remote-desktop (91.0.4472.10) ...
dpkg: dependency problems prevent configuration of chrome-remote-desktop:
chrome-remote-desktop depends on libgbm1 (>= 17.1.0~rc2); however:
Version of libgbm1:amd64 on system is 13.0.6-1+b2.
dpkg: error processing package chrome-remote-desktop (--install):
dependency problems - leaving unconfigured
Processing triggers for systemd (232-25+deb9u12) ...
Errors were encountered while processing:
chrome-remote-desktop
$ sudo apt install --assume-yes --fix-broken
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
chrome-remote-desktop
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 104 MB disk space will be freed.
(Reading database ... 113353 files and directories currently installed.)
Removing chrome-remote-desktop (91.0.4472.10) ...
Looks like you downloaded DEB package for a much newer Ubuntu than you are running. You didn't specify exactly what you are running so I have to only speculate.
The version you are using affects a lot of things, what is the output of the following?
lsb_release -a
On very old distributions you will have a lot problems installing newer out-of-distribution packages.
And I think the remote desktop needs to match the base chrome package, what happens when you run the:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install google-chrome-stable
If you want to control your server remotely, did you consider alternatives?
X11 forwarding tunnel with SSH
NoMachine
VNC server (I would still use it through SSH to make it more secure)
TeamViewer

Newer version of cmake available in CentOS 7 than in CentOS 8?

I have CentOS 7 and CentOS 8 installed on 2 VMs. Both have epel enabled.
CentOS 7:
$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
$ yum repolist
...
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10070
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13445
extras/7/x86_64 CentOS-7 - Extras 413
updates/7/x86_64 CentOS-7 - Updates 1127
repolist: 25055
CentOS 8:
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
$ yum repolist
repo id repo name
AppStream CentOS-8 - AppStream
BaseOS CentOS-8 - Base
PowerTools CentOS-8 - PowerTools
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS-8 - Extras
On CentOS 7, cmake3 is available from the epel repo, and provides cmake version 3.17.
$ yum provides cmake3
...
cmake3-3.17.3-3.el7.x86_64 : Cross-platform make system
Repo : epel
On CentOS 8, cmake3 is available from the AppStream repo, and provides cmake version 3.11.
$ yum provides cmake3
...
cmake-3.11.4-7.el8.x86_64 : Cross-platform make system
Repo : #System
Matched from:
Provide : cmake3 = 3.11.4-7.el8
I tried to disable all repos except for epel, but it's still coming back with the one from AppStream (which seems counter intuitive to me - surely it should come back with nothing if I've disabled all the other repos?)
$ yum --disablerepo=* --enablerepo=epel info cmake
Last metadata expiration check: 0:21:06 ago on Fri 11 Sep 2020 09:44:08 AM UTC.
Installed Packages
Name : cmake
Version : 3.11.4
Release : 7.el8
Architecture : x86_64
Size : 24 M
Source : cmake-3.11.4-7.el8.src.rpm
Repository : #System
From repo : AppStream
Summary : Cross-platform make system
URL : http://www.cmake.org
License : BSD and MIT and zlib
Description : CMake is used to control the software compilation process using simple
: platform and compiler independent configuration files. CMake generates
: native makefiles and workspaces that can be used in the compiler
: environment of your choice. CMake is quite sophisticated: it is possible
: to support complex environments requiring system configuration, preprocessor
: generation, code generation, and template instantiation.
I searched on pkgs.org, and it certainly does seem that cmake-3.11 is the latest version available to CentOS 8.
Apart from building from source, is there any other way to obtain a newer version of cmake on CentOD 8?
The cmake: 3.11.4 version will still be listed when you run yum info because it is already installed, so disabling the AppStream repo won't affect what is shown. If you only want to show available packages (based on your enabled yum repos), you can run this instead:
yum --disablerepo=* --enablerepo=epel info cmake --available
If you want to install the latest version of CMake (or some other version), you can always download the binary distribution from the CMake download page.
Once downloaded, you can extract the package to somewhere you have access to on your machine, e.g.:
mkdir ~/cmake
tar xvzf ~/Downloads/cmake-3.18.2-Linux-x86_64.tar.gz -C ~/cmake
Finally, make sure you add the extracted bin directory to your PATH environment variable so you can run the cmake executable from the command line.

I am not able to install package using my hosted repository

yum -d0 -e0 -y --disablerepo\=\* --enablerepo\=my-repo-name install ksh-20120801-34.el7
gives:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
Error downloading packages:
ksh-20120801-34.el7.x86_64: [Errno 256] No more mirrors to try.
though "ksh-20120801-34.el7" is available in the repo I am getting the above error.
I have tried cleaning up, disabling and enabling of repo but still no luck . Any help on this could be much appreciated.
One step to debug it would be to list the repo and see what is on the list:
# yum --disablerepo=* --enablerepo=my-repo-name list | grep ksh
You can also try without 20120801-34.el7 suffix. So the command would be the following:
yum -d0 -e0 -y --disablerepo=* --enablerepo=my-repo-name install ksh
[root#ms-node0101 ~]# yum install -y ksh.el7
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
No package ksh.el7 available.
Error: Nothing to do
[root#ms-node0101 ~]# yum install ksh-20120801-139
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
No package ksh-20120801-139 available.
Error: Nothing to do
[root#ms-node0101 ~]# yum install -y ksh
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package ksh.x86_64 0:20120801-139.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Installing:
ksh x86_64 20120801-139.el7 Local-Base 885 k
Transaction Summary
=============================================================================================================================================================================================================================================
Install 1 Package
Total download size: 885 k
Installed size: 3.1 M
Downloading packages:
ksh-20120801-139.el7.x86_64.rpm | 885 kB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : ksh-20120801-139.el7.x86_64 1/1
Verifying : ksh-20120801-139.el7.x86_64 1/1
Installed:
ksh.x86_64 0:20120801-139.el7
Complete!
Thanks everyone for trying to help me out here. In my case solution was simple and debug goes like below.
Was trying to wget the package from the repo. Though connection was successful i was not able to download the package.
2 . My team-mate analysed the mounts in the repo and we got to know that they were not mounted properly so he remounted filesystems and post that i was able to download and it solved the install step as well.

Cannot install Apache 2.4 from REMI repository

I am trying to install Apache 2.4 from the REMI repo but no matter what I try all I get is Apache 2.2
I have installed and enabled the EPEL and REMI repos:
# yum repolist enabled
repo id repo name status
base CentOS-6 - Base 6,696
epel Extra Packages for Enterprise Linux 6 - x86_64 12,358
extras CentOS-6 - Extras 64
remi Remi's RPM repository for Enterprise Linux 6 - x86_64 4,047
remi-php56 Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - x86_64 417
remi-safe Safe Remi's RPM repository for Enterprise Linux 6 - x86_64 1,768
updates CentOS-6 - Updates 974
I then use:
# yum install --enablerepo=remi httpd
Have also tried:
# yum install --enablerepo=remi-php56,remi,remi-safe,epel httpd
but in both cases I get offered only Apache 2.2:
Dependencies Resolved
===============================================================================================
Package Arch Version Repository Size
===============================================================================================
Installing:
httpd x86_64 2.2.15-56.el6.centos.3 updates 834 k
Installing for dependencies:
httpd-tools x86_64 2.2.15-56.el6.centos.3 updates 79 k
Transaction Summary
===============================================================================================
Install 2 Package(s)
Total download size: 913 k
Installed size: 3.1 M
Is this ok [y/N]:
Only the updates repo is getting used and not remi.
I have checked if apache is already installed:
# httpd -v
bash: httpd: command not found
# yum remove httpd*
Package(s) httpd* available, but not installed.
No Packages marked for removal
Is there something else I am missing? How do I get the REMI repo to be used? It is enabled but for some reason not active
remi repository is mostly dedicated to PHP, and doesn't provide Apache HTTP server, but use system version instead.
Mostly because default version in base repository is well maintained, secured, and enough in most case.
Notice that an httpd24 SCL (Software Collections) is available in centos-sclo repository which is a clone of RHSCL.

Can't install libffi-devel

I am trying to install libffi-devel on RHEL, but when I try I get this message:
Transaction Check Error:
package libffi-3.0.5-1.el5.6.z.x86_64 (which is newer than libffi-3.0.5-1.el5.i386) is already installed
I am running this command:
sudo yum install -y libffi-devel
And here is the full output of the command:
Loaded plugins: downloadonly, rhnplugin, security
This system is receiving updates from RHN Classic or RHN Satellite.
Excluding Packages in global exclude list
Finished
Excluding Packages from Rackspace - RHEL (v. 5 for 64-bit x86_64) - Common
Finished
Excluding Packages from Rackspace - RHEL (v. 5 for 64-bit x86_64) - MySQL 5.1
Finished
Excluding Packages from Rackspace - RHEL (v. 5 for 64-bit x86_64) - PHP 5.2
Finished
Excluding Packages from Red Hat Enterprise Linux (v. 5 for 64-bit x86_64)
Finished
Excluding Packages from Red Hat Network Tools for RHEL Server (v.5 64-bit x86_64)
Finished
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libffi-devel.x86_64 0:3.0.5-1.el5 set to be updated
--> Processing Dependency: libffi = 3.0.5-1.el5 for package: libffi-devel
--> Running transaction check
---> Package libffi.i386 0:3.0.5-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================================================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================================================================================================================================================================
Installing:
libffi-devel x86_64 3.0.5-1.el5 epel 16 k
Installing for dependencies:
libffi i386 3.0.5-1.el5 epel 21 k
Transaction Summary
================================================================================================================================================================================================================================================================================
Install 2 Package(s)
Upgrade 0 Package(s)
Total size: 37 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Check Error:
package libffi-3.0.5-1.el5.6.z.x86_64 (which is newer than libffi-3.0.5-1.el5.i386) is already installed
Error Summary
-------------
Looks like you already have a version of libffi-3.0.5-1.el5.6.z.x86_64 installed on your system. Check with the command and remove the rpm first.
rpm -qa | grep libffi
rpm -e <rpm from the above>
Then try installing using:
sudo yum install -y libffi libffi-devel