Skip to content

Commit

Permalink
qa/suites/orch: add a new smb service cephadm sub-suite and test
Browse files Browse the repository at this point in the history
Start a new subdir under cephadm suite for the new smb service
that cephadm can deploy. Add one new test that checks that a
smb service with domain membership can be deployed and connect
to it with smbclient from the samba client container image.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
  • Loading branch information
phlogistonjohn committed Mar 21, 2024
1 parent 9670490 commit 1f3001e
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 0 deletions.
Empty file added qa/suites/orch/cephadm/smb/%
Empty file.
1 change: 1 addition & 0 deletions qa/suites/orch/cephadm/smb/.qa
1 change: 1 addition & 0 deletions qa/suites/orch/cephadm/smb/0-distro
1 change: 1 addition & 0 deletions qa/suites/orch/cephadm/smb/tasks/.qa
88 changes: 88 additions & 0 deletions qa/suites/orch/cephadm/smb/tasks/deploy_smb_domain.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
roles:
# Test is for basic smb deployment & functionality. one node cluster is OK
- - host.a
- mon.a
- mgr.x
- osd.0
- osd.1
- client.0
# Reserve a host for acting as a domain controller
- - host.b
- cephadm.exclude
tasks:
- cephadm.deploy_samba_ad_dc:
role: host.b
- cephadm:

- cephadm.shell:
host.a:
- ceph fs volume create cephfs
- cephadm.wait_for_service:
service: mds.cephfs

- cephadm.shell:
host.a:
# create a subvolume so we can verify that we're sharing something
- cmd: ceph fs subvolumegroup create cephfs g1
- cmd: ceph fs subvolume create cephfs sub1 --group-name=g1 --mode=0777
# Create a user access the file system from samba
- cmd: ceph fs authorize cephfs client.smbdata / rw
# Create a rados pool and store the config in it
- cmd: ceph osd pool create .smb --yes-i-really-mean-it
- cmd: ceph osd pool application enable .smb smb
- cmd: rados --pool=.smb --namespace=admem1 put conf.toml /dev/stdin
stdin: |
samba-container-config = "v0"
[configs.admem1]
shares = ["share1"]
globals = ["default", "domain"]
instance_name = "SAMBA"
[shares.share1.options]
"vfs objects" = "ceph"
path = "/"
"ceph:config_file" = "/etc/ceph/ceph.conf"
"ceph:user_id" = "smbdata"
"kernel share modes" = "no"
"read only" = "no"
"browseable" = "yes"
[globals.default.options]
"server min protocol" = "SMB2"
"load printers" = "no"
"printing" = "bsd"
"printcap name" = "/dev/null"
"disable spoolss" = "yes"
"guest ok" = "no"
[globals.domain.options]
security = "ads"
workgroup = "DOMAIN1"
realm = "domain1.sink.test"
"idmap config * : backend" = "autorid"
"idmap config * : range" = "2000-9999999"
# Store the join auth user/pass in the config-key store
- cmd: ceph config-key set smb/config/admem1/join1.json -i -
stdin: |
{"username": "Administrator", "password": "Passw0rd"}
- cephadm.apply:
specs:
- service_type: smb
service_id: admem1
placement:
count: 1
cluster_id: admem1
features:
- domain
config_uri: "rados://.smb/admem1/conf.toml"
custom_dns:
- "{{ctx.samba_ad_dc_ip}}"
join_sources:
- "rados:mon-config-key:smb/config/admem1/join1.json"
include_ceph_users:
- "client.smbdata"
- cephadm.wait_for_service:
service: smb.admem1

- cephadm.exec:
host.b:
- sleep 30
- "{{ctx.samba_client_container_cmd|join(' ')}} smbclient -U DOMAIN1\\\\ckent%1115Rose. //{{'host.a'|role_to_remote|attr('ip_address')}}/share1 -c ls"

0 comments on commit 1f3001e

Please sign in to comment.