GithubHelp home page GithubHelp logo

sssd / sssd-test-suite Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 16.0 295 KB

Setup virtual environment for testing SSSD against LDAP, IPA and Active Directory servers.

Shell 15.66% Ruby 5.43% Python 78.68% Vim Script 0.23%

sssd-test-suite's Introduction

Coverity Scan

SSSD - System Security Services Daemon

Introduction

SSSD provides a set of daemons to manage access to remote directories and authentication mechanisms such as LDAP, Kerberos or FreeIPA. It provides an NSS and PAM interface toward the system and a pluggable backend system to connect to multiple different account sources.

More information about SSSD can be found on its project page - https://github.com/SSSD/sssd.

Downloading SSSD

SSSD is shipped as a binary package by most Linux distributions. If you want to obtain the latest source files, please navigate to the Releases folder on GitHub.

We sign release tarballs with our gpg key (id C13CD07FFB2DB1408E457A3CD3D21B2910CF6759) since April 2022. For convenience, the key is also uploaded to keys.openpgp.org keyserver. You can import the key using:

$ curl -o sssd.asc https://raw.githubusercontent.com/SSSD/sssd/master/contrib/pubkey.asc
$ gpg2 --import sssd.asc

or

$ gpg2 --keyserver keys.openpgp.org --recv-keys C13CD07FFB2DB1408E457A3CD3D21B2910CF6759

And verify the signature with:

$ version=x.y.z
$ curl -o sssd-$version.tar.gz https://github.com/SSSD/sssd/releases/download/$version/sssd-$version.tar.gz
$ curl -o sssd-$version.tar.gz.asc https://github.com/SSSD/sssd/releases/download/$version/sssd-$version.tar.gz.asc
$ gpg2 --verify sssd-$version.tar.gz.asc sssd-$version.tar.gz

Releases

SSSD maintains two release streams - stable and LTM. Releases designated as LTM are long-term maintenance releases and will see bugfixes and security patches for a longer time than other releases.

The list of all releases is maintained together with SSSD documentation.

Building and installation from source

Please see the our developer documentation.

Documentation

The most up-to-date documentation can be found at https://sssd.io.

Its source code is hosted at https://github.com/SSSD/sssd.io.

Submitting bugs

Please file an issue in the SSSD github instance. Make sure to follow the guide on reporting SSSD bugs.

Licensing

Please see the file called COPYING.

Contacts

There are several ways to contact us:

sssd-test-suite's People

Contributors

alexey-tikhonov avatar elkoniu avatar fidencio avatar ikerexxe avatar justin-stephenson avatar pbrezina avatar sumit-bose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sssd-test-suite's Issues

Vagrant plugin install issues on Fedora 33

Part of the host provision procedure is installation of required vagrant plugins.
On fresh Fedora 33 plugin install ends up with the error:

conflicting dependencies racc (= 1.4.16) and racc (= 1.5.0)
  Activated racc-1.5.0
  which does not match conflicting dependency (= 1.4.16)

  Conflicting dependency chains:
    racc (= 1.5.0), 1.5.0 activated

  versus:
    racc (= 1.4.16)

  Gems matching racc (= 1.4.16):
    racc-1.4.16

This has been already addressed in BZ [1]. For me workaround was to explicit disable dependency version checking in vagrant:

$ VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT=1 ./sssd-test-suite provision host --pool /vm-pool/

I am wondering if we can address similar issues for the future enabling some more liberal plugins / dependencies checking by default in sssd-test-suite.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1835308

'domains' not set correctly in sssd.conf for IPA enrollment

After running the commands here:

https://github.com/SSSD/sssd-test-suite#i-want-to-try-sssd-with-freeipa

The client system is setup with:

[[email protected] ~]# grep 'domains' /etc/sssd/sssd.conf 
domains = ldap.vm

This required manual editing to add the ipa.vm domain to resolve IPA users.

I am not sure if this issue is reproducible, so I am creating this issue to keep track of it. If it is reproducible I will look into finding a fix when I am able to.

Error with AD child domain setup

I am using SSSD test suite with AD and CHILD.AD configured as a child domain.

sssd.conf:

[sssd]
config_file_version = 2
services = nss, pam, ifp, sudo
debug_level = 0x3ff0
domains = ldap.vm, ad.vm
user = root

[nss]
debug_level = 0x3ff0
timeout = 30000
# command = valgrind --leak-check=full --log-file=/tmp/valgrind.log /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 -d 0x3ff0 --debug-to-files

[pam]
timeout = 30000
debug_level = 0x3ff0

[pac]
timeout = 30000
debug_level = 0x3ff0

[sudo]
timeout = 30000
debug_level = 0x3ff0

[ssh]
timeout = 30000
debug_level = 0x3ff0

[ifp]
timeout = 30000
debug_level = 0x3ff0

[kcm]
timeout = 30000
debug_level = 0x3ff0

[secrets]
timeout = 30000
debug_level = 0x3ff0

[domain/ldap.vm]
timeout = 30000
debug_level = 0x3ff0
id_provider = ldap
ldap_uri = _srv_
ldap_tls_reqcert = demand
ldap_tls_cacert = /shared/enrollment/ldap/cacert.asc
dns_discovery_domain = ldap.vm

[domain/ipa.vm]
timeout = 30000
debug_level = 0x3ff0
id_provider = ipa
access_provider = ipa
ipa_server = _srv_
ipa_domain = ipa.vm
ipa_hostname = master.client.vm
krb5_keytab = /shared/enrollment/client/ipa.keytab
ldap_krb5_keytab = /shared/enrollment/client/ipa.keytab

[domain/ad.vm]
timeout = 30000
debug_level = 0x3ff0
id_provider = ad
access_provider = ad
ad_server = _srv_
ad_domain = ad.vm
ad_hostname = master.client.vm
krb5_keytab = /shared/enrollment/client/ad.keytab
ldap_krb5_keytab = /shared/enrollment/client/ad.keytab
dyndns_update = false

[domain/child.ad.vm]
timeout = 30000
debug_level = 0x3ff0
id_provider = ad
access_provider = ad
ad_server = _srv_
ad_domain = child.ad.vm
ad_hostname = child.client.vm
krb5_keytab = /shared/enrollment/client/ad-child.keytab
ldap_krb5_keytab = /shared/enrollment/client/ad-child.keytab
dyndns_update = false

On CHILD.AD.VM Windows machine I created user childaduser. On CLIENT machine I am querying it by calling getent passwd [email protected]. There is no result for such query. When I explicite enable child.ad.vm in sssd.conf query is working so user is there.

Error message when empty result is returned (child domain configuration):

[be[ad.vm]] [sasl_bind_send] (0x0080): Extended failure message: [SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (KDC has no support for encryption type)

Workaround by @pbrezina (executed on client):

update-crypto-policies --set LEGACY

After that it is possible to resolve user from child domain.

ad-child provision enrollment fails because it's still loading

ad-child provision enrollment fails because it's still loading the "Group Policy Client", once that is loaded if you execute again the command it finishes correctly.

How to reproduce:
$ ./sssd-test-suite up client ad ad-child
$ ./sssd-test-suite provision enroll client ad ad-child
It fails with the following error:
fatal: [client]: FAILED! => {"changed": true, "cmd": "current_hostname=hostname\nhostname 'child.client.vm' || exit $?\necho vagrant | realm join child.ad.vm || exit $?\nhostname $current_hostname || exit $?\ntouch /etc/sssd/ad_child_enrolled || exit $?\n", "delta": "0:00:00.014015", "end": "2020-06-08 08:41:40.222281", "msg": "non-zero return code", "rc": 1, "start": "2020-06-08 08:41:40.208266", "stderr": "realm: Cannot join this realm", "stderr_lines": ["realm: Cannot join this realm"], "stdout": "", "stdout_lines": []}

In this moment if you open a rdesktop session with ad-child you'll find that "Group Policy Client" is still loading and it's not possible to login. Once that is loaded execute again:
$ ./sssd-test-suite provision enroll client ad ad-child

This time it succeeds.

Setup:

  • Last master branch (7d2273a)
  • Lenovo T490s with Fedora 32

/sssd-vagrant/fedora30-ldap could not be found

[fedora@fedora sssd-test-suite]$ ./sssd-test-suite up client ldap && ./sssd-test-suite provision enroll client ldap
Bringing machine 'client' up with 'libvirt' provider...
Bringing machine 'ldap' up with 'libvirt' provider...
==> client: Box 'sssd-vagrant/fedora30-client' could not be found. Attempting to find and install...
client: Box Provider: libvirt
client: Box Version: >= 0
==> ldap: Box 'sssd-vagrant/fedora30-ldap' could not be found. Attempting to find and install...
ldap: Box Provider: libvirt
ldap: Box Version: >= 0
==> ldap: An error occurred. The error will be shown after all tasks complete.
==> client: An error occurred. The error will be shown after all tasks complete.
An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.

An error occurred while executing the action on the 'client'
machine. Please handle this error then try again:

The box 'sssd-vagrant/fedora30-client' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
vagrant login. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/sssd-vagrant/fedora30-client"]
Error: The requested URL returned error: 404

An error occurred while executing the action on the 'ldap'
machine. Please handle this error then try again:

The box 'sssd-vagrant/fedora30-ldap' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
vagrant login. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://atlas.hashicorp.com/sssd-vagrant/fedora30-ldap"]
Error: The requested URL returned error: 404
[sssd-test-suite] The following command exited with 1:
[sssd-test-suite] Working directory: /home/fedora/sssd/test/suite/pool/sssd-test-suite
[sssd-test-suite] Environment: SSSD_TEST_SUITE_CONFIG='/home/fedora/sssd/test/suite/pool/sssd-test-suite/config.json' VAGRANT_CWD='/home/fedora/sssd/test/suite/pool/sssd-test-suite'
[sssd-test-suite] Command: vagrant up client ldap

Some errors setting up sssd-test-suite on Fedora 30

I had sssd-test-suite running previously just fine. I decided to update it by removing all old virtual machines first. After "./sssd-test-suite up -s" new VMs has been downloaded correctly.
The next part generated some errors:
$ ./sssd-test-suite provision guest all
$ ./sssd-test-suite provision enroll all

Result:

koniu@blackbox<sssd-test-suite><master>$ ./sssd-test-suite provision guest all

PLAY [all] ***********************************************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************************
ok: [localhost]
ok: [ldap]
ok: [client]
ok: [ipa]
ok: [ad-child]
ok: [ad]

TASK [python : Python interpreter] ***********************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'discovered_interpreter_python' is undefined\n\nThe error appears to be in '/home/koniu/RedHat/git/sssd-test-suite/provision/roles/python/tasks/main.yml': line 1, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Python interpreter\n  ^ here\n"}
fatal: [ad]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'discovered_interpreter_python' is undefined\n\nThe error appears to be in '/home/koniu/RedHat/git/sssd-test-suite/provision/roles/python/tasks/main.yml': line 1, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Python interpreter\n  ^ here\n"}
fatal: [ad-child]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'discovered_interpreter_python' is undefined\n\nThe error appears to be in '/home/koniu/RedHat/git/sssd-test-suite/provision/roles/python/tasks/main.yml': line 1, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Python interpreter\n  ^ here\n"}
ok: [ipa] => {
    "msg": "/usr/bin/python3 (3.7.4)"
}
ok: [ldap] => {
    "msg": "/usr/bin/python3 (3.7.4)"
}
ok: [client] => {
    "msg": "/usr/bin/python3 (3.7.5)"
}

PLAY [ipa:ldap:client] ***********************************************************************************************************************************

TASK [packages : Upgrade all packages to their latest version] *******************************************************************************************
changed: [client]
changed: [ldap]
changed: [ipa]

TASK [packages : Include distribution specific package tasks [Fedora 30]] ********************************************************************************
included: /home/koniu/RedHat/git/sssd-test-suite/provision/roles/packages/tasks/Fedora30.yml for ipa, ldap, client

TASK [packages : Packages are the same as in Fedora 29] **************************************************************************************************
included: /home/koniu/RedHat/git/sssd-test-suite/provision/roles/packages/tasks/Fedora29.yml for ipa, ldap, client

TASK [packages : Packages are the same as in Fedora 28] **************************************************************************************************
included: /home/koniu/RedHat/git/sssd-test-suite/provision/roles/packages/tasks/Fedora28.yml for ipa, ldap, client

TASK [packages : Packages are the same as in Fedora 27] **************************************************************************************************
included: /home/koniu/RedHat/git/sssd-test-suite/provision/roles/packages/tasks/Fedora27.yml for ipa, ldap, client

TASK [packages : SELinux is enabled in Fedora] ***********************************************************************************************************
ok: [ipa]
ok: [ldap]
ok: [client]

TASK [packages : Set debuginfo repositories to *-debuginfo] **********************************************************************************************
ok: [ipa]
ok: [ldap]
ok: [client]

TASK [packages : Install common packages] ****************************************************************************************************************
ok: [client]
ok: [ipa]
ok: [ldap]

TASK [packages : Install IPA specific packages] **********************************************************************************************************
skipping: [ldap]
skipping: [client]
ok: [ipa]

TASK [packages : Install LDAP specific packages] *********************************************************************************************************
skipping: [ipa]
skipping: [client]
ok: [ldap]

TASK [packages : Install Client specific packages] *******************************************************************************************************
skipping: [ipa]
skipping: [ldap]
ok: [client]

TASK [packages : Install Client specific packages required for integration tests] ************************************************************************
skipping: [ipa]
skipping: [ldap]
ok: [client]

TASK [packages : Install debug information for specific packages] ****************************************************************************************
skipping: [ipa]
skipping: [ldap]
ok: [client]

TASK [packages : Install additional packages] ************************************************************************************************************
ok: [ipa]
ok: [ldap]
ok: [client]

TASK [packages : Install LDAP legacy tools] **************************************************************************************************************
skipping: [ipa]
skipping: [client]
ok: [ldap]

TASK [packages : Install additional packages] ************************************************************************************************************
ok: [ldap]
ok: [ipa]
ok: [client]

TASK [common : Run SELinux in permissive mode] ***********************************************************************************************************
ok: [client]
ok: [ldap]
ok: [ipa]

TASK [common : Add .bashrc for user] *********************************************************************************************************************
ok: [ldap]
ok: [client]
ok: [ipa]

TASK [common : Add .vimrc for user] **********************************************************************************************************************
ok: [client]
ok: [ldap]
ok: [ipa]

TASK [common : Add .bashrc for root] *********************************************************************************************************************
ok: [client]
ok: [ipa]
ok: [ldap]

TASK [common : Add .vimrc for root] **********************************************************************************************************************
ok: [client]
ok: [ldap]
ok: [ipa]

TASK [common : Keep SSSD_TEST_SUITE_BASHRC variable when sudo] *******************************************************************************************
ok: [client]
ok: [ldap]
ok: [ipa]

TASK [common : Accept SSSD_TEST_SUITE_BASHRC variable through ssh] ***************************************************************************************
ok: [ldap]
ok: [ipa]
ok: [client]

TASK [common : Reload sshd] ******************************************************************************************************************************
skipping: [ipa]
skipping: [ldap]
skipping: [client]

TASK [common : Add ssh key for vagrant user] *************************************************************************************************************
fatal: [client]: FAILED! => {"changed": true, "cmd": "if [ -f /home/vagrant/.ssh/id_rsa ]; then\n  echo \"Key already exist. Nothing to do.\"\n  exit 255\nfi\n\nssh-keygen -b 2048 -t rsa -q -N \"\" -f /home/vagrant/.ssh/id_rsa\n", "delta": "0:00:00.004028", "end": "2019-11-29 08:46:27.558193", "msg": "non-zero return code", "rc": 255, "start": "2019-11-29 08:46:27.554165", "stderr": "", "stderr_lines": [], "stdout": "Key already exist. Nothing to do.", "stdout_lines": ["Key already exist. Nothing to do."]}
changed: [ldap]
changed: [ipa]

PLAY [ad:ad-child] ***************************************************************************************************************************************

PLAY [ad] ************************************************************************************************************************************************

PLAY [ipa] ***********************************************************************************************************************************************

TASK [ipa : Remove hostname from /etc/hosts] *************************************************************************************************************
ok: [ipa]

TASK [ipa : Install IPA server] **************************************************************************************************************************
ok: [ipa]

TASK [ipa : Remove vagrant IP addresses from /etc/hosts because they can change over time] ***************************************************************
ok: [ipa]

TASK [ipa : Create /etc/NetworkManager/conf.d/disable_dns.conf] ******************************************************************************************
ok: [ipa]

TASK [ipa : Start NetworkManager] ************************************************************************************************************************
ok: [ipa]

TASK [ipa : Reload NetworkManager configuration] *********************************************************************************************************
skipping: [ipa]

TASK [ipa : Remove vagrant DNS A records] ****************************************************************************************************************
ok: [ipa] => (item={'zone': 'ipa.vm', 'name': 'ipa-ca', 'ip': '192.168.121.238'})
ok: [ipa] => (item={'zone': 'ipa.vm', 'name': 'master', 'ip': '192.168.121.238'})

TASK [ipa : Create pw-never-expires group] ***************************************************************************************************************
ok: [ipa]

TASK [ipa : Create pw-never-expires password policy] *****************************************************************************************************
ok: [ipa]

TASK [ipa : Add admin to pw-never-expires group] *********************************************************************************************************
ok: [ipa]

TASK [ipa : Reset admin password to apply pw-never-expires policy] ***************************************************************************************
skipping: [ipa]

PLAY [ad-child] ******************************************************************************************************************************************

PLAY [ldap:client] ***************************************************************************************************************************************

TASK [dnsclient : Create /etc/NetworkManager/conf.d/enable_dnsmasq.conf] *********************************************************************************
ok: [ldap]

TASK [dnsclient : Create /etc/NetworkManager/dnsmasq.d/zone_vm.dnsmasq] **********************************************************************************
ok: [ldap]

TASK [dnsclient : Start NetworkManager] ******************************************************************************************************************
ok: [ldap]

TASK [dnsclient : Reload NetworkManager configuration] ***************************************************************************************************
skipping: [ldap]

PLAY [ldap] **********************************************************************************************************************************************

TASK [ldap : Fetch SSL setup script] *********************************************************************************************************************
changed: [ldap]

TASK [ldap : Create directory server instance] ***********************************************************************************************************
ok: [ldap]

TASK [ldap : Enable SSL for directory server instance] ***************************************************************************************************
ok: [ldap]

TASK [ldap : Restart directory server] *******************************************************************************************************************
skipping: [ldap]

TASK [ldap : Restart directory server instance] **********************************************************************************************************
skipping: [ldap]

TASK [ldap : Remove all objects but "cn=Directory Administrators"] ***************************************************************************************
ok: [ldap]

PLAY RECAP ***********************************************************************************************************************************************
ad                         : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
ad-child                   : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
client                     : ok=22   changed=1    unreachable=0    failed=1    skipped=4    rescued=0    ignored=0   
ipa                        : ok=30   changed=2    unreachable=0    failed=0    skipped=8    rescued=0    ignored=0   
ldap                       : ok=29   changed=3    unreachable=0    failed=0    skipped=8    rescued=0    ignored=0   
localhost                  : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

[sssd-test-suite] The following command exited with 2:
[sssd-test-suite] Working directory: /home/koniu/RedHat/git/sssd-test-suite
[sssd-test-suite] Environment: ANSIBLE_HOST_KEY_CHECKING='false' ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s -o ServerAliveInterval=15'
[sssd-test-suite] Command: ansible-playbook --limit all --inventory-file /home/koniu/RedHat/git/sssd-test-suite/provision/inventory.yml /home/koniu/RedHat/git/sssd-test-suite/provision/prepare-guests.yml
koniu@blackbox<sssd-test-suite><master>$ ./sssd-test-suite provision enroll all
[sssd-test-suite] [Enroll] [1/2] Start Guest Machines
Bringing machine 'ad' up with 'libvirt' provider...
Bringing machine 'ad-child' up with 'libvirt' provider...
Bringing machine 'client' up with 'libvirt' provider...
Bringing machine 'ipa' up with 'libvirt' provider...
Bringing machine 'ldap' up with 'libvirt' provider...
==> ad: Checking if box 'peru/windows-server-2019-datacenter-x64-eval' version '20191101.01' is up to date...
==> client: Checking if box 'sssd-vagrant/fedora30-client' version '20191123.01' is up to date...
==> ipa: Checking if box 'sssd-vagrant/fedora30-ipa' version '20191029.01' is up to date...
==> ldap: Checking if box 'sssd-vagrant/fedora30-ldap' version '20191029.01' is up to date...
==> ad: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ad: flag to force provisioning. Provisioners marked to run always will still run.
==> ad-child: Checking if box 'peru/windows-server-2019-datacenter-x64-eval' version '20191101.01' is up to date...
==> ad-child: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ad-child: flag to force provisioning. Provisioners marked to run always will still run.
==> ldap: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ldap: flag to force provisioning. Provisioners marked to run always will still run.
==> ipa: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ipa: flag to force provisioning. Provisioners marked to run always will still run.
==> client: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> client: flag to force provisioning. Provisioners marked to run always will still run.
[sssd-test-suite] [Enroll] [2/2] Enroll Machines
BECOME password: 

PLAY [ipa] ***********************************************************************************************************************************************

TASK [enroll-ipa : Create /shared/enrollment/ipa directory] **********************************************************************************************
changed: [ipa]

TASK [enroll-ipa : Copy certificate to shared folder] ****************************************************************************************************
changed: [ipa]

TASK [enroll-ipa : Install IPA-AD trust] *****************************************************************************************************************
changed: [ipa]

TASK [enroll-ipa : Setup trust with ad.vm] ***************************************************************************************************************
fatal: [ipa]: FAILED! => {"changed": false, "cmd": "echo 123456789 | kinit admin\n\nipa trust-show ad.vm\nif [ $? -eq 0 ]; then\n  echo \"Trust with ad.vm already exists. Nothing to do.\"\n  exit 255\nfi\n\necho vagrant | ipa trust-add ad.vm --admin Administrator --password\n", "delta": "0:00:01.866779", "end": "2019-11-29 08:50:33.685654", "failed_when_result": true, "msg": "non-zero return code", "rc": 2, "start": "2019-11-29 08:50:31.818875", "stderr": "ipa: ERROR: ad.vm: trust not found\nipa: ERROR: Cannot perform the selected command without Samba 4 support installed. Make sure you have installed server-trust-ad sub-package of IPA. Alternatively, following servers are capable of running this command: master.ipa.vm", "stderr_lines": ["ipa: ERROR: ad.vm: trust not found", "ipa: ERROR: Cannot perform the selected command without Samba 4 support installed. Make sure you have installed server-trust-ad sub-package of IPA. Alternatively, following servers are capable of running this command: master.ipa.vm"], "stdout": "Password for [email protected]: ", "stdout_lines": ["Password for [email protected]: "]}

PLAY RECAP ***********************************************************************************************************************************************
ipa                        : ok=3    changed=3    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

[sssd-test-suite] [Enroll]   [ERROR] ShellScriptError: Command '['ansible-playbook', '--limit', 'all', '--inventory-file', '/home/koniu/RedHat/git/sssd-test-suite/provision/inventory.yml', '--ask-become-pass', '/home/koniu/RedHat/git/sssd-test-suite/provision/enroll.yml']' returned non-zero exit status 2.
[sssd-test-suite] [Enroll] Finished with error ShellScriptError: Command '['ansible-playbook', '--limit', 'all', '--inventory-file', '/home/koniu/RedHat/git/sssd-test-suite/provision/inventory.yml', '--ask-become-pass', '/home/koniu/RedHat/git/sssd-test-suite/provision/enroll.yml']' returned non-zero exit status 2.
[sssd-test-suite] The following command exited with 2:
[sssd-test-suite] Working directory: /home/koniu/RedHat/git/sssd-test-suite
[sssd-test-suite] Environment: ANSIBLE_HOST_KEY_CHECKING='false' ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s -o ServerAliveInterval=15'
[sssd-test-suite] Command: ansible-playbook --limit all --inventory-file /home/koniu/RedHat/git/sssd-test-suite/provision/inventory.yml --ask-become-pass /home/koniu/RedHat/git/sssd-test-suite/provision/enroll.yml

Vagrant image for AD Server 2019 datacenter edition no longer exists

I changed it to peru/windows-server-2019-standard-x64-eval which worked, but i'm not sure if this is the best vagrant image to use(Windows License is valid for ~160 days, but I'm not sure what functionality is disabled afterwards). I can file a PR once I receive confirmation.

An error occurred while executing multiple actions in parallel.                                                                                                                                                                               
Any errors that occurred are shown below.                                                                                                                                                                                                     
                                                                                                                                                                                                                                              
An error occurred while executing the action on the 'ad'                                                                                                                                                                                      
machine. Please handle this error then try again:                                                                                                                                                                                             
                                                                                                                                                                                                                                              
The box 'peru/windows-server-2019-datacenter-x64-eval' could not be found or                                                                                                                                                                  
could not be accessed in the remote catalog. If this is a private                                                                                                                                                                             
box on HashiCorp's Vagrant Cloud, please verify you're logged in via                                                                                                                                                                          
`vagrant login`. Also, please double-check the name. The expanded                                                                                                                                                                             
URL and error message are shown below:                                                                                                                                                                                                        
                                                                                                                                                                                                                                              
URL: ["https://vagrantcloud.com/peru/windows-server-2019-datacenter-x64-eval"]                                                                                                                                                                
Error: The requested URL returned error: 404 Not Found                                                                                                                                                                                        
[sssd-test-suite] [enroll] ERROR ShellCommandError: Command returned non-zero status code: 1    

AD Child direct integration failure

On Fedora 34 I am trying to setup sssd-test-suite with AD and AD child for direct integration, I am running:

$ ./sssd-test-suite provision enroll child ad

This works fine, then I run and get this error about renaming:

$ ./sssd-test-suite provision enroll ad-child
...
<snip>
...
==> ad-child: Machine booted and ready!
==> ad-child: Setting hostname...
==> ad-child: Removing domain...
==> ad-child: Deleting the machine folder
Renaming the Windows guest failed. Most often this is because you've
specified a FQDN instead of just a host name.

Ensure the new guest name is properly formatted. Standard names may
contain letters (a-z, A-Z), numbers (0-9), and hyphens (-), but no
spaces or periods (.). The name may not consist entirely of digits.
[sssd-test-suite] [enroll] ERROR ShellCommandError: Command returned non-zero status code: 1
[sssd-test-suite] [enroll] [2/2] Enroll Machines (skipped on error)
[sssd-test-suite] [enroll] Finished with error ShellCommandError: Command returned non-zero status code: 1
[sssd-test-suite] The following command exited with: 1
[sssd-test-suite] [shell] Working directory: /home/justin/github/sssd-test-suite
[sssd-test-suite] [shell] Environment: VAGRANT_CWD='/home/justin/github/sssd-test-suite' SSSD_TEST_SUITE_CONFIG='/home/justin/github/sssd-test-suite/config.json'
[sssd-test-suite] [shell] Command: ['vagrant', 'up', 'ad-child']

I see the same error if I try running ./sssd-test-suite provision enroll client ad ad-child

Realm join fails in 'provision enroll client ad'

TASK [enroll-client : Join to Active Directory domain] ***************************************************************************************************************************************************************************************
fatal: [client]: FAILED! => {"changed": true, "cmd": "echo vagrant | realm join ad.vm || exit $?\ntouch /etc/sssd/ad_enrolled || exit $?\n", "delta": "0:00:20.052564", "end": "2020-08-19 15:15:52.075986", "msg": "non-zero return code", "rc": 1, "start": "2020-08-19 15:15:32.023422", "stderr": "realm: No such realm found", "stderr_lines": ["realm: No such realm found"], "stdout": "", "stdout_lines": []}

When I SSH to the client

[[email protected] ~]# realm -v join ad.vm
 * Resolving: _ldap._tcp.ad.vm
 * Resolving: ad.vm
 ! Discovery timed out after 15 seconds
realm: No such realm found
[[email protected] ~]# realm -v discover
 * Resolving: _ldap._tcp.client.vm
 * Resolving: client.vm
 * Performing LDAP DSE lookup on: 23.202.231.169
 * Performing LDAP DSE lookup on: 23.217.138.110
 ! Can't contact LDAP server
 ! Can't contact LDAP server
realm: No default realm discovered
[[email protected] ~]# realm -v list
No configured realms

How is the client intended to discover the AD server to perform realm join?

Consider changing the hostname of master.client.vm

The client hostname is a bit confusing in my opinion, with master and client in the same name. It should not be confused with an IPA master, removing the word master from the hostname would be preferred.

VMs network DNS issues

After spawning new set of master.client.vm, master.ipa.vm and master.ldap.vm I cant ping ipa.vm from client.vm.
It looks like this is issue related to systemd-resolved. I checked and on my host (Fedora 33) systemd-resolved was enabled and running where on virtual machines it was deactivated. After I start systemd-resolved on all sssd-test-suite VMs machines started to see each other. I think the issue started when I updated from Fedora 31 to Fedora 33 or after latest updates on Fedora 33.

False positive error

When I am provisioning and enrolling all clients I am getting error during client processing:
Joining realm failed: Host is already joined.
I think this should be considered as warning rather than error?
Full log bellow.

[SSH: ppolawsk@czapka]<sssd-test-suite><master>$ ./sssd-test-suite provision enroll all
[sssd-test-suite] [enroll] [1/2] Start Guest Machines
Bringing machine 'ad' up with 'libvirt' provider...
Bringing machine 'ad-child' up with 'libvirt' provider...
Bringing machine 'client' up with 'libvirt' provider...
Bringing machine 'ipa' up with 'libvirt' provider...
Bringing machine 'ldap' up with 'libvirt' provider...
==> ad: Checking if box 'sssd-winsrv-latest-ad' version '20200128.01' is up to date...
==> ad-child: Checking if box 'sssd-winsrv-latest-ad-child' version '20200128.01' is up to date...
==> client: Checking if box 'sssd-vagrant/fedora31-client' version '20201205.01' is up to date...
==> ldap: Checking if box 'sssd-vagrant/fedora31-ldap' version '20201205.01' is up to date...
==> ipa: Checking if box 'sssd-vagrant/fedora31-ipa' version '20201205.01' is up to date...
==> ad: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ad: flag to force provisioning. Provisioners marked to run always will still run.
==> ad-child: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ad-child: flag to force provisioning. Provisioners marked to run always will still run.
==> ldap: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ldap: flag to force provisioning. Provisioners marked to run always will still run.
==> client: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> client: flag to force provisioning. Provisioners marked to run always will still run.
==> ipa: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ipa: flag to force provisioning. Provisioners marked to run always will still run.
[sssd-test-suite] [enroll] [2/2] Enroll Machines
BECOME password: 

PLAY [ipa] ********************************************************************************************************************

TASK [enroll-ipa : Create /shared/enrollment/ipa directory] *******************************************************************
ok: [ipa]

TASK [enroll-ipa : Copy certificate to shared folder] *************************************************************************
ok: [ipa]

TASK [enroll-ipa : Install IPA-AD trust] **************************************************************************************
ok: [ipa]

TASK [enroll-ipa : Setup trust with ad.vm] ************************************************************************************
changed: [ipa]

PLAY [ldap] *******************************************************************************************************************

TASK [enroll-ldap : Create /shared/enrollment/ldap directory] *****************************************************************
ok: [ldap]

TASK [enroll-ldap : Copy certificate to shared folder] ************************************************************************
ok: [ldap]

PLAY [client] *****************************************************************************************************************

TASK [enroll-client : Create /shared/enrollment/client directory] *************************************************************
ok: [client]

TASK [enroll-client : include_tasks] ******************************************************************************************
included: /home/ppolawsk/RedHat/git/sssd-test-suite/provision/roles/enroll-client/tasks/ipa.yml for client

TASK [enroll-client : Join IPA domain] ****************************************************************************************
fatal: [client]: FAILED! => changed=true 
  cmd: |-
    /usr/sbin/ipa-client-install --unattended           --domain ipa.vm                 --principal admin                                 --password 123456789             --force-ntpd
  delta: '0:00:13.372355'
  end: '2021-08-18 09:47:57.783905'
  msg: non-zero return code
  rc: 1
  start: '2021-08-18 09:47:44.411550'
  stderr: |-
    Option --force-ntpd has been deprecated and will be removed in a future release.
    Discovery was successful!
    Client hostname: master.client.vm
    Realm: IPA.VM
    DNS Domain: ipa.vm
    IPA Server: master.ipa.vm
    BaseDN: dc=ipa,dc=vm
    Synchronizing time
    No SRV records of NTP servers found and no NTP server or pool address was provided.
    Attempting to sync time with chronyc.
    Time synchronization was successful.
    Successfully retrieved CA cert
        Subject:     CN=Certificate Authority,O=IPA.VM
        Issuer:      CN=Certificate Authority,O=IPA.VM
        Valid From:  2020-12-05 01:22:35
        Valid Until: 2040-12-05 01:22:35
  
    Joining realm failed: Host is already joined.
  
    Use --force-join option to override the host entry on the server and force client enrollment.
    Installation failed. Rolling back changes.
    Disabling client Kerberos and LDAP configurations
    Other domains than IPA domain found, IPA domain was removed from /etc/sssd/sssd.conf.
    nscd daemon is not installed, skip configuration
    nslcd daemon is not installed, skip configuration
    Client uninstall complete.
    The ipa-client-install command failed. See /var/log/ipaclient-install.log for more information
  stderr_lines: <omitted>
  stdout: |-
    This program will set up FreeIPA client.
    Version 4.8.6
  
  
    Using default chrony configuration.
  stdout_lines: <omitted>

PLAY RECAP ********************************************************************************************************************
client                     : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
ipa                        : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
ldap                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[sssd-test-suite] [enroll] ERROR ShellCommandError: Command returned non-zero status code: 2
[sssd-test-suite] [enroll] Finished with error ShellCommandError: Command returned non-zero status code: 2
[sssd-test-suite] The following command exited with: 2
[sssd-test-suite] [shell] Working directory: /home/ppolawsk/RedHat/git/sssd-test-suite
[sssd-test-suite] [shell] Environment: ANSIBLE_CONFIG='/home/ppolawsk/RedHat/git/sssd-test-suite/provision/ansible.cfg'
[sssd-test-suite] [shell] Command: ['ansible-playbook', '--limit', 'all', '--ask-become-pass', '/home/ppolawsk/RedHat/git/sssd-test-suite/provision/enroll.yml']
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/nutcli/runner.py", line 240, in execute
    return self._call_actor(args.func, args, shell)
  File "/usr/local/lib/python3.9/site-packages/nutcli/runner.py", line 282, in _call_actor
    return actor(**actor._filter_parser_args(args))
  File "/home/ppolawsk/RedHat/git/sssd-test-suite/cli/commands/provision.py", line 184, in __call__
    TaskList('enroll', logger=self.logger)([
  File "/usr/local/lib/python3.9/site-packages/nutcli/tasks.py", line 187, in execute
    self.__real_handler(kwargs)(*real_args, **real_kwargs)
  File "/usr/local/lib/python3.9/site-packages/nutcli/tasks.py", line 401, in _run_tasks
    raise error.with_traceback(error_info[2])
  File "/usr/local/lib/python3.9/site-packages/nutcli/tasks.py", line 383, in _run_tasks
    task.execute(parent=self)
  File "/usr/local/lib/python3.9/site-packages/nutcli/tasks.py", line 187, in execute
    self.__real_handler(kwargs)(*real_args, **real_kwargs)
  File "/home/ppolawsk/RedHat/git/sssd-test-suite/cli/commands/provision.py", line 207, in enroll
    self._exec_ansible(
  File "/home/ppolawsk/RedHat/git/sssd-test-suite/cli/commands/provision.py", line 49, in _exec_ansible
    return self.shell(['ansible-playbook', *args], env=env)
  File "/usr/local/lib/python3.9/site-packages/nutcli/shell.py", line 197, in __call__
    raise ShellCommandError(
nutcli.shell.ShellCommandError: Command returned non-zero status code: 2

Error on upgrade of libvirt packages

After libvirt packages were upgraded in Fedora 34, sssd-test-suite fails with the following error:

[justin@agalloch sssd-test-suite]$ ./sssd-test-suite ssh client                                                                                                                                                                                                                           
Vagrant failed to initialize at a very early stage:                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                          
The plugins failed to initialize correctly. This may be due to manual                                                                                                                                                                                                                     
modifications made within the Vagrant home directory. Vagrant can                                                                                                                                                                                                                         
attempt to automatically correct this issue by running:                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                          
  vagrant plugin repair                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                          
If Vagrant was recently updated, this error may be due to incompatible                                                                                                                                                                                                                    
versions of dependencies. To fix this problem please remove and re-install                                                                                                                                                                                                                
all plugins. Vagrant can attempt to do this automatically by running:                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                          
  vagrant plugin expunge --reinstall                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                          
Or you may want to try updating the installed plugins to their latest                                                                                                                                                                                                                     
versions:                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                          
  vagrant plugin update                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                          
Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-libvirt (= 0.5.3)'                                                                                                                                                                       

This is easily solved with
vagrant plugin install vagrant-libvirt

But perhaps there is a way to check for this, or handle it inside sssd-test-suite to avoid any manual effort to fix this.

Provisioning failure with ipa guest

I am trying to redeploy my test suite of an IPA server, and client but I see the following error. Any suggestions for further troubleshooting is appreciated.

$ ./sssd-test-suite provision enroll client ipa
[sssd-test-suite] [enroll] [1/2] Start Guest Machines
Bringing machine 'client' up with 'libvirt' provider...
Bringing machine 'ipa' up with 'libvirt' provider...
==> client: Checking if box 'sssd-vagrant/fedora34-client' version '20210324.01' is up to date...
==> ipa: Checking if box 'sssd-vagrant/fedora34-ipa' version '20210324.01' is up to date...
==> client: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> client: flag to force provisioning. Provisioners marked to run always will still run.
==> ipa: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> ipa: flag to force provisioning. Provisioners marked to run always will still run.
[sssd-test-suite] [enroll] [2/2] Enroll Machines
BECOME password: 

PLAY [ipa] *******************************************************************************************************************************************************************************************************************************************************************************************************************

TASK [enroll-ipa : Create /shared/enrollment/ipa directory] ******************************************************************************************************************************************************************************************************************************************************************
ok: [ipa]

TASK [enroll-ipa : Copy certificate to shared folder] ************************************************************************************************************************************************************************************************************************************************************************
fatal: [ipa]: FAILED! => changed=false 
  msg: Source /etc/ipa/ca.crt not found

PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************************************************************
ipa                        : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

[sssd-test-suite] [enroll] ERROR ShellCommandError: Command returned non-zero status code: 2
[sssd-test-suite] [enroll] Finished with error ShellCommandError: Command returned non-zero status code: 2
[sssd-test-suite] The following command exited with: 2
[sssd-test-suite] [shell] Working directory: /home/justin/github/sssd-test-suite
[sssd-test-suite] [shell] Environment: ANSIBLE_CONFIG='/home/justin/github/sssd-test-suite/provision/ansible.cfg'
[sssd-test-suite] [shell] Command: ['ansible-playbook', '--limit', 'client,ipa,localhost', '--skip-tags', 'enroll-ldap,enroll-ad,enroll-ad-child', '--ask-become-pass', '/home/justin/github/sssd-test-suite/provision/enroll.yml']
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/nutcli/runner.py", line 240, in execute
    return self._call_actor(args.func, args, shell)
  File "/usr/local/lib/python3.8/site-packages/nutcli/runner.py", line 282, in _call_actor
    return actor(**actor._filter_parser_args(args))
  File "/home/justin/github/sssd-test-suite/cli/commands/provision.py", line 184, in __call__
    TaskList('enroll', logger=self.logger)([
  File "/usr/local/lib/python3.8/site-packages/nutcli/tasks.py", line 187, in execute
    self.__real_handler(kwargs)(*real_args, **real_kwargs)
  File "/usr/local/lib/python3.8/site-packages/nutcli/tasks.py", line 401, in _run_tasks
    raise error.with_traceback(error_info[2])
  File "/usr/local/lib/python3.8/site-packages/nutcli/tasks.py", line 383, in _run_tasks
    task.execute(parent=self)
  File "/usr/local/lib/python3.8/site-packages/nutcli/tasks.py", line 187, in execute
    self.__real_handler(kwargs)(*real_args, **real_kwargs)
  File "/home/justin/github/sssd-test-suite/cli/commands/provision.py", line 207, in enroll
    self._exec_ansible(
  File "/home/justin/github/sssd-test-suite/cli/commands/provision.py", line 49, in _exec_ansible
    return self.shell(['ansible-playbook', *args], env=env)
  File "/usr/local/lib/python3.8/site-packages/nutcli/shell.py", line 197, in __call__
    raise ShellCommandError(
nutcli.shell.ShellCommandError: Command returned non-zero status code: 2

If I ssh into the IPA guest I do not see any /etc/ipa/ca.crt file. This guest network cannot reach out to the internet also.

 justin  ~  github  sssd-test-suite  ./sssd-test-suite ssh ipa
Last login: Wed Mar 31 20:12:12 2021 from 192.168.100.1
[systemd]
Failed Units: 1
  ipa.service
[[email protected] ~]$ sudo su - 
Last login: Wed Mar 31 20:03:04 UTC 2021 on pts/0
[systemd]
Failed Units: 1
  ipa.service
[[email protected] ~]# ll /etc/ipa/
total 20
drwx------. 2 root root 4096 Mar 24 11:41 custodia
drwxr-xr-x. 2 root root 4096 Mar 24 11:49 dnssec
drwxr-xr-x. 2 root root 4096 Mar 24 11:35 html
drwxr-xr-x. 2 root root 4096 Mar 24 11:48 kdcproxy
drwxr-xr-x. 2 root root 4096 Mar 24 11:49 nssdb
[[email protected] ~]# ll /etc/ipa/ca.crt
ls: cannot access '/etc/ipa/ca.crt': No such file or directory
[[email protected] ~]# ping google.com
ping: google.com: Name or service not known

Trying to provision the guest fails due to a network issue, it's not clear to me if this is the root of the issue, or a symptom.

 justin  ~  github  sssd-test-suite  ./sssd-test-suite provision guest ipa

PLAY [local:linux] ***********************************************************************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************************************************************************************************************************************************************************************************
ok: [ipa]

TASK [python : Python interpreter] *******************************************************************************************************************************************************************************************************************************************************************************************
ok: [ipa] => 
  msg: /usr/bin/python3 (3.9.2)

PLAY [ipa:ldap:client] *******************************************************************************************************************************************************************************************************************************************************************************************************

TASK [Upgrade all packages to their latest version] **************************************************************************************************************************************************************************************************************************************************************************
FAILED - RETRYING: Upgrade all packages to their latest version (3 retries left).
FAILED - RETRYING: Upgrade all packages to their latest version (2 retries left).
FAILED - RETRYING: Upgrade all packages to their latest version (1 retries left).
fatal: [ipa]: FAILED! => changed=false 
  attempts: 3
  msg: 'Failed to download metadata for repo ''fedora-modular'': Cannot prepare internal mirrorlist: Curl error (6): Couldn''t resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-34&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]'
  rc: 1
  results: []

PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************************************************************
ipa                        : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

[sssd-test-suite] The following command exited with: 2
[sssd-test-suite] [shell] Working directory: /home/justin/github/sssd-test-suite
[sssd-test-suite] [shell] Environment: ANSIBLE_CONFIG='/home/justin/github/sssd-test-suite/provision/ansible.cfg'
[sssd-test-suite] [shell] Command: ['ansible-playbook', '--limit', 'ipa', '/home/justin/github/sssd-test-suite/provision/prepare-guests.yml']
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/nutcli/runner.py", line 240, in execute
    return self._call_actor(args.func, args, shell)
  File "/usr/local/lib/python3.8/site-packages/nutcli/runner.py", line 282, in _call_actor
    return actor(**actor._filter_parser_args(args))
  File "/home/justin/github/sssd-test-suite/cli/commands/provision.py", line 127, in __call__
    self._exec_ansible(playbook, unattended=True, limit=guests, argv=argv)
  File "/home/justin/github/sssd-test-suite/cli/commands/provision.py", line 49, in _exec_ansible
    return self.shell(['ansible-playbook', *args], env=env)
  File "/usr/local/lib/python3.8/site-packages/nutcli/shell.py", line 197, in __call__
    raise ShellCommandError(
nutcli.shell.ShellCommandError: Command returned non-zero status code: 2

The client system appears to be working fine. My config.json is as follows.

{
  "boxes": {
    "ad": {
      "name": "peru/windows-server-2019-datacenter-x64-eval",
      "url": "",
      "memory": 2048
    },
    "ad-child": {
      "name": "peru/windows-server-2019-datacenter-x64-eval",
      "url": "",
      "memory": 2048
    },
    "ipa": {
      "name": "sssd-vagrant/fedora34-ipa",
      "url": "",
      "memory": 2048
    },
    "ldap": {
      "name": "sssd-vagrant/fedora34-ldap",
      "url": "",
      "memory": 1024
    },
    "client": {
      "name": "sssd-vagrant/fedora34-client",
      "url": "",
      "memory": 2048
    }
  },
  "folders": {
    "sshfs": [],
    "rsync": [],
    "nfs": []
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.