Jenkins проект для создания пользователей в WordPress c помощью wp-cli

Задача.
Создать проект в Jenkins для возможножности создавать пользователей на серверах с WordPress c помощью wp-cli.

Решение:

1. Создаем проект в Jenkins с названием «add-wordpress-user»

image
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
*******************************************************

Источник
Метки:
jenkins, bash, linux

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.