Skip to main content
This section shows how to configure the Ansible instance to integrate with the Futurex PKCS #11 library.

Create a key pair

Perform the tasks in the following sections to create a key pair on the KMES Series 3:

Set Futurex PKCS #11 environment variables

Perform the following steps to set Futurex PKCS #11 environment variables:
1
In a terminal, run the following commands to set the required FXPKCS11 environment variables:
Shell
Be sure to modify the file path to match the location of libfxpkcs11.so and fxpkcs11.cfg on your system.

Create a key pair on the KMES Series 3 by using pkcs11-tool

Perform the following steps to create a key pair on the KMES Series 3 by using pkcs11-tool:
1
In a terminal, run the following command to create a new RSA key pair on the KMES:
Shell
When prompted for the user PIN, enter the password of the identity configured in the fxpkcs11.cfg file.
If successful, the command output lists the keys that pkcs11-tool created on the KMES.

Ansible Playbooks

In Ansible, Playbooks perform automated tasks. You can reference the Futurex PKCS #11 library when performing these tasks inside the Playbook file to perform various functions, such as SSH and signing data. For more information on Ansible Playbooks, see the Ansible documentation.

SSH example

The following example uses Futurex PKCS #11 with Ansible:
1
Create an Ansible project working directory and switch to it.
Shell
2
Create an inventory file.
Shell
The following code shows an example inventory file that uses localhost:
Shell
3
Create a playbook.yml file.
Shell
The following code shows an example Ansible Playbook file for testing SSH referencing the private key created in the previous section (ansible_rsa_privatekey):
Shell
  • Replace pkcs11module with the location of the Futurex PKCS #11 library on your system.
  • Replace pkcs11pin with the password you configured for the identity created for this integration.
  • Replace pkcs11keyid with the label of the key you set when creating the key pair through pkcs11-tool.
4
To execute the Playbook and reference the private key stored on the HSM during SSH connection, run the following command, setting the username, inventory, and Playbook file information according to your setup:
Shell
When prompted, enter thebecome_password in Ansible. The become directive escalates privileges when running tasks, similar to using sudo in the command line. The become_password is the password for the user specified in become_user (which defaults to root if not specified).
5
When prompted for the password of the user you are connecting to the machine with through SSH, enter it to complete the process.
If successful, you should see a response similar to the following:
Shell
6
You can verify the successful pull of the private key within the FXPKCS11 log file or the log output shown in the command response.

Signing data example

The following example uses PKCS #11 with Ansible:
1
Create an Ansible project working directory and switch to it.
Shell
2
Create an inventory file.
Shell
The following code shows an example inventory file that uses localhost:
Shell
3
Create a playbook.yml file.
Shell
The following code shows an example Ansible Playbook file for signing data referencing the private key created in the previous section (ansible_rsa_privatekey):
Shell
  • Replace pkcs11module with the location of the Futurex PKCS #11 library on your system.
  • Replace pkcs11pin with the password you configured for the identity created for this integration.
  • Replace pkcs11keyid with the label of the key you set when creating the key pair through pkcs11-tool.
4
To execute the Playbook and reference the private key stored on the HSM during SSH connection, run the following command, setting the username, inventory, and Playbook file information according to your setup:
Shell
When prompted, enter the become_password in Ansible. The become directive escalates privileges when running tasks, similar to using sudo in the command line. The become_password is the password for the user specified in become_user (which defaults to root if not specified).
5
When prompted for the password of the user you are connecting to the machine with through SSH, enter it to complete the process.
If successful, you should see a response similar to the following:
Shell
6
You can verify the signing operations within the FXPKCS11 log file or by checking the output file contents.