ARC client on MacOS High Sierra

The MacOS packages are old and do not work with newer versions of ARC.

We suggest you to use a Vagrant box with preinstalled and preconfigured ARC client –  all settings are customized for Slovenian supercomputing network – SLING.

First install brew, if not available:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then install the following software:

brew cask install virtualbox
==> Tapping caskroom/cask
Cloning into '/usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask'...
remote: Counting objects: 3940, done.
remote: Compressing objects: 100% (3895/3895), done.
remote: Total 3940 (delta 45), reused 809 (delta 41), pack-reused 0
Receiving objects: 100% (3940/3940), 1.34 MiB | 0 bytes/s, done.
Resolving deltas: 100% (45/45), done.
Checking connectivity... done.
Tapped 0 formulae (3,948 files, 4.2MB)
==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password:
==> Satisfying dependencies
==> Downloading http://download.virtualbox.org/virtualbox/5.2.2/VirtualBox-5.2.2-119230-OSX.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask virtualbox
==> Installing Cask virtualbox
==> Running installer for virtualbox; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
==> installer: Package name is Oracle VM VirtualBox
==> installer: Upgrading at base path /
==> installer: The upgrade was successful.
?  virtualbox was successfully installed!

brew cask install vagrant
==> Satisfying dependencies
==> Downloading https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask vagrant
==> Installing Cask vagrant
==> Running installer for vagrant; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
==> installer: Package name is Vagrant
==> installer: Installing at base path /
==> installer: The install was successful.
?  vagrant was successfully installed!

$ brew cask install vagrant-manager
==> Satisfying dependencies
==> Downloading https://github.com/lanayotech/vagrant-manager/releases/download/2.6.0/vagrant-manager-2.6.0.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask vagrant-manager
==> Installing Cask vagrant-manager
==> Moving App 'Vagrant Manager.app' to '/Applications/Vagrant Manager.app'.
?  vagrant-manager was successfully installed!

 

Some OS-es are available here: https://app.vagrantup.com/bento

mkdir arcclient
cd arcclient
vagrant init bento/centos-7.4

Vagrantfile contains these settings:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-7.4"

Run it:

$ vagrant init bento/centos-7.4

$ vagrant up --provider virtualbox
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/centos-7.4' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'bento/centos-7.4'
    default: URL: https://vagrantcloud.com/bento/centos-7.4
==> default: Adding box 'bento/centos-7.4' (v201710.25.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/bento/boxes/centos-7.4/versions/201710.25.0/providers/virtualbox.box
==> default: Successfully added box 'bento/centos-7.4' (v201710.25.0) for 'virtualbox'!
==> default: Importing base box 'bento/centos-7.4'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/centos-7.4' is up to date...
==> default: Setting the name of the VM: singularity-24_default_1511787162788_52929
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.1.30
    default: VirtualBox Version: 5.2
==> default: Mounting shared folders...
    default: /vagrant => /Users/barbara/singularity-2.4

Update the OS and install the required packages:

$ vagrant ssh -c /bin/sh
$ sudo yum -y update
$ sudo yum -y install epel-release
$ sudo yum -y install nordugrid-arc-client nordugrid-arc-plugins-globus
$ cd /etc/yum.repos.d/
$ sudo wget http://repository.egi.eu/sw/production/cas/1/current/repo-files/EGI-trustanchors.repo
$ sudo yum -y install ca-policy-egi-core fetch-crl

Now configure the client:
Download the vomsdir configuration and place it in the .arc directory within your home folder: vomsdir.tar.gz

$ mkdir .arc
$ cd .arc
$ wget http://www-old.sling.si/sling/wp-content/uploads/2017/11/vomsdir.tar.gz
$ tar xvf vomsdir.tar.gz
$ ls -la vomsdir
total 12
drwxr-xr-x. 9 vagrant vagrant 211 Nov 27 13:16 .
drwxrwxr-x. 3 vagrant vagrant  43 Nov 27 13:27 ..
drwxr-xr-x. 2 vagrant vagrant  60 Sep  8 08:07 atlas
drwxr-xr-x. 2 vagrant vagrant  31 Nov 27 13:11 cipkebip
drwxr-xr-x. 2 vagrant vagrant  31 Nov 27 13:11 fri.vo.sling.si
drwxr-xr-x. 2 vagrant vagrant  31 Sep  8 08:07 gen.vo.sling.si
drwxr-xr-x. 2 vagrant vagrant  31 Nov 27 13:16 hpc.fis.unm.si
-rw-r--r--. 1 vagrant vagrant 101 Sep  8 08:07 lcg-voms2.cern.ch.lsc
drwxr-xr-x. 2 vagrant vagrant  31 Sep  8 08:07 nsc.ijs.si
drwxr-xr-x. 2 vagrant vagrant  60 Sep  8 08:07 ops
-rw-r--r--. 1 vagrant vagrant  97 Sep  8 08:07 voms2.cern.ch.lsc
-rw-r--r--. 1 vagrant vagrant  68 Sep  8 08:07 voms.sling.si.lsc

Now configure the vomses. Download the configuration file to vomses directory: vomses.tar.gz

$ wget http://www-old.sling.si/sling/wp-content/uploads/2017/11/vomses.tar.gz
$ tar xvf vomses.tar.gz
$ ls -la vomses
total 24
drwxr-xr-x. 2 vagrant vagrant 119 Nov 28 11:02 .
drwxr-xr-x. 4 vagrant vagrant  75 Nov 28 11:06 ..
-rw-r--r--. 1 vagrant vagrant  94 Nov 28 11:02 cipkebip
-rw-r--r--. 1 vagrant vagrant 102 Jan 13  2017 fri.vo.sling.si
-rw-r--r--. 1 vagrant vagrant 101 Dec  1  2016 gen.vo.sling.si
-rw-r--r--. 1 vagrant vagrant 100 Dec  1  2016 hpc.fis.unm.si
-rw-r--r--. 1 vagrant vagrant  92 Nov 28 11:00 nsc.ijs.si
-rw-r--r--. 1 vagrant vagrant 175 Jan  4  2017 ops

Now configure the client (you can transfer this file) or copy-paste the following settings:

$ cat ~/.arc/client.conf
[common]
keypath=/home/vagrant/.arc/userkey.pem
certificatepath=/home/vagrant/.arc/usercert.pem
cacertificatesdirectory=/etc/grid-security/certificates
vomsespath=/home/vagrant/.arc/vomses

[computing/jost]
url=ldap://jost.arnes.si:2135
infointerface=org.nordugrid.ldapng
jobinterface=org.nordugrid.gridftpjob

[computing/nsc]
url=ldap://nsc.ijs.si:2135
infointerface=org.nordugrid.ldapng
jobinterface=org.nordugrid.gridftpjob

To copy the certificate from the host machine to the VM, you need to install vagrant-scp plugin. Type this command on the host machine:

$ vagrant plugin install vagrant-scp

Copy the certificate to the VM:

vagrant scp /home/barbara/.arc/userkey.pem /home/vagrant/.arc
vagrant scp /home/barbara/.arc/usercert.pem /home/vagrant/.arc

Your client is ready to be used.

Test it (back in the vagrant box):

arcproxy -S gen.vo.sling.si