Standardize names and lock config
This commit is contained in:
		| @@ -66,7 +66,7 @@ pvc: | ||||
|     path: "/var/home/joshua/pvc" | ||||
|  | ||||
|     # Path to the deploy key (if applicable) used to clone and pull the repository | ||||
|     keyfile: "/var/home/joshua/id_ed25519.joshua.key" | ||||
|     key_file: "/var/home/joshua/id_ed25519.joshua.key" | ||||
|  | ||||
|     # Git remote URI for the repository | ||||
|     remote: "ssh://git@git.bonifacelabs.ca:2222/bonifacelabs/pvc.git" | ||||
| @@ -77,6 +77,9 @@ pvc: | ||||
|     # Clusters configuration file | ||||
|     clusters_file: "clusters.yml" | ||||
|  | ||||
|     # Lock file to use for Git interaction | ||||
|     lock_file: "/run/pvcbootstrapd.lock" | ||||
|  | ||||
|     # Filenames of the various group_vars components of a cluster | ||||
|     # Generally with pvc-ansible this will contain 2 files: "base.yml", and "pvc.yml"; refer to the | ||||
|     # pvc-ansible documentation and examples for details on these files. | ||||
|   | ||||
| @@ -179,7 +179,7 @@ def read_config(): | ||||
|             ) | ||||
|  | ||||
|     # Get the Ansible configuration | ||||
|     for key in ["path", "keyfile", "remote", "branch", "clusters_file"]: | ||||
|     for key in ["path", "key_file", "remote", "branch", "clusters_file", "lock_file"]: | ||||
|         try: | ||||
|             config[f"ansible_{key}"] = o_ansible[key] | ||||
|         except Exception: | ||||
|   | ||||
| @@ -66,7 +66,7 @@ def run_bootstrap(config, cspec, cluster, nodes): | ||||
|                 limit=f"{cluster.name}", | ||||
|                 playbook=f"{config['ansible_path']}/pvc.yml", | ||||
|                 extravars={ | ||||
|                     "ansible_ssh_private_key_file": config["ansible_keyfile"], | ||||
|                     "ansible_ssh_private_key_file": config["ansible_key_file"], | ||||
|                     "bootstrap": "yes", | ||||
|                 }, | ||||
|                 forks=len(nodes), | ||||
|   | ||||
| @@ -37,7 +37,7 @@ def init_repository(config): | ||||
|     Clone the Ansible git repository | ||||
|     """ | ||||
|     try: | ||||
|         git_ssh_cmd = f"ssh -i {config['ansible_keyfile']} -o StrictHostKeyChecking=no" | ||||
|         git_ssh_cmd = f"ssh -i {config['ansible_key_file']} -o StrictHostKeyChecking=no" | ||||
|         if not os.path.exists(config["ansible_path"]): | ||||
|             print( | ||||
|                 f"First run: cloning repository {config['ansible_remote']} branch {config['ansible_branch']} to {config['ansible_path']}" | ||||
| @@ -61,12 +61,10 @@ def pull_repository(config): | ||||
|     """ | ||||
|     Pull (with rebase) the Ansible git repository | ||||
|     """ | ||||
|     lockfile = "/tmp/pvcbootstrapd-git.lock" | ||||
|     lock = FileLock(lockfile) | ||||
|     with lock: | ||||
|     with FileLock(config['ansible_lock_file']): | ||||
|         logger.info(f"Updating local configuration repository {config['ansible_path']}") | ||||
|         try: | ||||
|             git_ssh_cmd = f"ssh -i {config['ansible_keyfile']} -o StrictHostKeyChecking=no" | ||||
|             git_ssh_cmd = f"ssh -i {config['ansible_key_file']} -o StrictHostKeyChecking=no" | ||||
|             g = git.cmd.Git(f"{config['ansible_path']}") | ||||
|             logger.debug("Performing git pull") | ||||
|             g.pull(rebase=True, env=dict(GIT_SSH_COMMAND=git_ssh_cmd)) | ||||
| @@ -82,9 +80,7 @@ def commit_repository(config): | ||||
|     """ | ||||
|     Commit uncommitted changes to the Ansible git repository | ||||
|     """ | ||||
|     lockfile = "/tmp/pvcbootstrapd-git.lock" | ||||
|     lock = FileLock(lockfile) | ||||
|     with lock: | ||||
|     with FileLock(config['ansible_lock_file']): | ||||
|         logger.info( | ||||
|             f"Committing changes to local configuration repository {config['ansible_path']}" | ||||
|         ) | ||||
| @@ -111,14 +107,12 @@ def push_repository(config): | ||||
|     """ | ||||
|     Push changes to the default remote | ||||
|     """ | ||||
|     lockfile = "/tmp/pvcbootstrapd-git.lock" | ||||
|     lock = FileLock(lockfile) | ||||
|     with lock: | ||||
|     with FileLock(config['ansible_lock_file']): | ||||
|         logger.info( | ||||
|             f"Pushing changes from local configuration repository {config['ansible_path']}" | ||||
|         ) | ||||
|         try: | ||||
|             git_ssh_cmd = f"ssh -i {config['ansible_keyfile']} -o StrictHostKeyChecking=no" | ||||
|             git_ssh_cmd = f"ssh -i {config['ansible_key_file']} -o StrictHostKeyChecking=no" | ||||
|             g = git.Repo(f"{config['ansible_path']}") | ||||
|             origin = g.remote(name="origin") | ||||
|             origin.push(env=dict(GIT_SSH_COMMAND=git_ssh_cmd)) | ||||
|   | ||||
| @@ -43,7 +43,7 @@ def run_paramiko(config, node_address): | ||||
|     ssh_client.connect( | ||||
|         hostname=node_address, | ||||
|         username=config["deploy_username"], | ||||
|         key_filename=config["ansible_keyfile"], | ||||
|         key_filename=config["ansible_key_file"], | ||||
|     ) | ||||
|     yield ssh_client | ||||
|     ssh_client.close() | ||||
|   | ||||
| @@ -43,7 +43,7 @@ def init_tftp(config): | ||||
|         os.makedirs(config["tftp_root_path"]) | ||||
|         os.makedirs(config["tftp_host_path"]) | ||||
|         shutil.copyfile( | ||||
|             f"{config['ansible_keyfile']}.pub", f"{config['tftp_root_path']}/keys.txt" | ||||
|             f"{config['ansible_key_file']}.pub", f"{config['tftp_root_path']}/keys.txt" | ||||
|         ) | ||||
|  | ||||
|         build_tftp_repository(config) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user