Standardize names and lock config
This commit is contained in:
parent
00ac00ae2c
commit
08ba856288
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue