Search
Write a publication
Pull to refresh

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

Источник
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.