Задача.
Создать проект в Jenkins для возможножности создавать пользователей на серверах с WordPress c помощью wp-cli.
Решение:
1. Создаем проект в Jenkins с названием «add-wordpress-user»
2. Добавляем параметры
String parametr user_email
String parametr user_password
Choise parameter brand_name
Choise paramet
1-Сылка на бренд
2-IP адрес где будет исполяться код добавления пользователя
3-Локальный путь к WordPress
4-Тип пароля (просто пароль(N) или хеш(Y))
https://ваш_бренд/wp-admin;111.111.111.111;/var/www/ваш_бренд/public_html;N
Выбираем от какого пользователя будем выполнять скрипт в проекте.
Добавляем скрипт:
#!/bin/bash
#Generate password
if [ -z "$user_password" ]
then
password_gen=`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo ''`
else
password_gen=$user_password
fi
echo $password_gen
#Считываем параметры
#echo $wp_admin
wp_admin=$(echo $brand_name | awk -F";" '{print $1}')
#echo $ip_addr
ip_addr=$(echo $brand_name | awk -F";" '{print $2}')
#echo $brand_path
brand_path=$(echo $brand_name | awk -F";" '{print $3}')
#echo $password_type
password_type=$(echo $brand_name | awk -F";" '{print $4}')
#generate hash
case $password_type in
N)
hash_pass=$password_gen
;;
Y)
hash_pass=`curl -s 'https://generate_server/pass_gen.php?email='$user_email'&password='$password_gen | awk -F"serarate:" '{print $2}' | tail -1 | tr -d '[:space:]'`
;;
esac
echo "* Password or hash: " $hash_pass
#Instal wp-cli
ssh general_user@$ip_addr -o StrictHostKeyChecking=no "[ ! -f "/usr/local/bin/wp" ] && wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x wp-cli.phar && sudo mv /home/circleci/wp-cli.phar /usr/local/bin/wp"
#Create user
ssh general_user@$ip_addr -o StrictHostKeyChecking=no "sudo -u apache /usr/local/bin/wp user create $user_email $user_email --first_name=$user_email --last_name=$user_email --role=administrator --user_pass=$hash_pass --path=$brand_path"
#Update user
ssh general_user@$ip_addr -o StrictHostKeyChecking=no "sudo /usr/local/bin/wp user update $user_email --user_email=$user_email --first_name=$user_email --last_name=$user_email --role=administrator --user_pass=$hash_pass --path=$brand_path"
echo '*******************************************************'
echo '* Url '$wp_admin
echo '* Email: '$user_email
echo '* Password: '$password_gen
echo '*******************************************************'
Проект создан его можно выполнять с параметрами
После выполнения билда можно просмотреть текущий пароль в консоле Jenkins
*******************************************************
* Url сайт_имя/wp-admin
* Email: почта@mail.ru
* Password: Fng_пароль_OO
*******************************************************
Автор: весёлый усач