diff --git a/roles/defaults/vars.go b/roles/defaults/vars.go
index 07b3dc0..4dc1e7d 100644
--- a/roles/defaults/vars.go
+++ b/roles/defaults/vars.go
@@ -9,7 +9,7 @@
 
 var (
 	//go:embed vars/main.yml
-	vars_file []byte
+	varsFile []byte
 )
 
 func GetImageByKey(key string) (string, error) {
@@ -19,7 +19,7 @@
 	}
 
 	var image string
-	if err := path.Read(bytes.NewReader(vars_file), &image); err != nil {
+	if err := path.Read(bytes.NewReader(varsFile), &image); err != nil {
 		return "", err
 	}
 
diff --git a/roles/keystone/tasks/main.yml b/roles/keystone/tasks/main.yml
index 6913630..5201613 100644
--- a/roles/keystone/tasks/main.yml
+++ b/roles/keystone/tasks/main.yml
@@ -37,6 +37,7 @@
         namespace: "{{ keystone_helm_release_namespace }}"
 
 - name: Create Keycloak realms
+  no_log: true
   run_once: true
   delegate_to: localhost
   changed_when: false
diff --git a/roles/keystone/tasks_test.go b/roles/keystone/tasks_test.go
new file mode 100644
index 0000000..687659d
--- /dev/null
+++ b/roles/keystone/tasks_test.go
@@ -0,0 +1,45 @@
+package keystone
+
+import (
+	_ "embed"
+	"os"
+	"testing"
+
+	"github.com/goccy/go-yaml"
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+)
+
+// Create Keycloak realms
+
+var (
+	//go:embed tasks/main.yml
+	tasksFile []byte
+	tasks     []map[string]interface{}
+)
+
+func TestMain(m *testing.M) {
+	t := &testing.T{}
+
+	err := yaml.UnmarshalWithOptions(tasksFile, &tasks, yaml.Strict())
+	require.NoError(t, err)
+
+	code := m.Run()
+	os.Exit(code)
+}
+
+func getTaskByName(name string) map[string]interface{} {
+	for _, t := range tasks {
+		if t["name"] == name {
+			return t
+		}
+	}
+	return nil
+}
+
+func TestCreateKeycloakRealmsTask(t *testing.T) {
+	task := getTaskByName("Create Keycloak realms")
+	require.NotNil(t, task)
+
+	assert.Equal(t, true, task["no_log"])
+}
diff --git a/roles/percona_xtradb_cluster/vars_test.go b/roles/percona_xtradb_cluster/vars_test.go
index 0a73722..9b0deda 100644
--- a/roles/percona_xtradb_cluster/vars_test.go
+++ b/roles/percona_xtradb_cluster/vars_test.go
@@ -24,8 +24,8 @@
 
 var (
 	//go:embed vars/main.yml
-	vars_file []byte
-	vars      Vars
+	varsFile []byte
+	vars     Vars
 )
 
 type Vars struct {
@@ -35,7 +35,7 @@
 func TestMain(m *testing.M) {
 	t := &testing.T{}
 
-	err := yaml.UnmarshalWithOptions(vars_file, &vars, yaml.Strict(), yaml.UseJSONUnmarshaler())
+	err := yaml.UnmarshalWithOptions(varsFile, &vars, yaml.Strict(), yaml.UseJSONUnmarshaler())
 	require.NoError(t, err)
 
 	code := m.Run()
