浏览代码

add inventory/scripts/update.sh

pull/2959/head
mcnesium 3 年前
父节点
当前提交
1ae7d47e50
找不到此签名对应的密钥 GPG 密钥 ID: 7D6CC73E428F633F
共有 1 个文件被更改,包括 37 次插入0 次删除
  1. +37
    -0
      inventory/scripts/update.sh

+ 37
- 0
inventory/scripts/update.sh 查看文件

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
#
# Wrapper script for the entire update procedure including
# * updating git repo
# * downloading roles
# * running playbook
#
# This script first asks for the passwords for all the hosts and then pipes them
# to the ansible playbook wrapper script, so that we don't need to wait for the
# merging and downloading to finish, before being asked for the passwords.
#

# exit on errors
set -e

# set playbook root path
root=$(dirname "$(readlink -f "$0")")/../..

# capture passwords for all hosts
for host in "$root"/inventory/*.yml; do
read -rp "sudo password for $(basename "$host"): " -s pw
pipeinput+="$pw\n"
echo
done

# merge upstream master branch
git -C "$root" pull upstream master

# check the changelog before updating
less CHANGELOG.md
read -r

# download upstream roles
make -f "$root"/Makefile roles

# run ansible-playbook on all hosts
echo -e "$pipeinput" | bash "$root"/inventory/scripts/ansible-all-hosts.sh

正在加载...
取消
保存