본문 바로가기
Infra/프라이빗 클라우드 인프라

Open Stack - Cloud-init (wordpress)

by shinebee* 2020. 7. 2.

** script를 사용해 Instance로 wordpress 올리기 **

 

  • Instance 생성할 때

  • Script를 shell 파일로 만들어 Browse를 이용해 파일을 올릴 수 있다.
  • Customization Script -> 직접 작성도 가능하다.

 

 

 

* Instance 생성하기 참고

2020/07/02 - [Infra/프라이빗 클라우드 인프라] - Open Stack 운영.3 (user)

 

Open Stack 운영.3 (user)

Open Stack 운영.1 2020/07/01 - [Infra/프라이빗 클라우드 인프라] - Open Stack 운영.1(admin) 외부망에 연결될 브릿지. eth1 -> compute 시스템과의 통신용 Compute se.." data-og-host="suee-b.tistory.com" d..

suee-b.tistory.com

 

 

 

 

▶  Script 작성하기

#!/bin/sh
yum -y install http://ftp.riken.jp/Linux/remi/enterprise/remi-release-7.rpm
yum-config-manager --disable remi-safe
yum-config-manager --enable remi-php74
cat << EOF >> /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
yum-config-manager --enable mariadb
yum install -y httpd php php-mysqlnd MariaDB-server MariaDB-client
systemctl start mariadb
mysql -u root -e 'CREATE DATABASE wordpress_db'
mysql -u root -e "CREATE USER 'wp-admin'@'localhost' IDENTIFIED BY 'dkagh1.'"
mysql -u root -e "GRANT ALL PRIVILEGES ON wordpress_db.* to 'wp-admin'@'localhost' IDENTIFIED BY 'dkagh1.'"
mysql -u root -e "FLUSH PRIVILEGES"
curl -o latest.tar.gz https://wordpress.org/latest.tar.gz
tar zxf latest.tar.gz
cp -r wordpress/* /var/www/html
setfacl -Rm u:apache:rwX /var/www/html
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
sed -i '23s/database_name_here/wordpress_db/g' wp-config.php
sed -i '26s/username_here/wp-admin/g' wp-config.php
sed -i '29s/password_here/dkagh1./g' wp-config.php
systemctl start httpd
systemctl enable httpd

 

  •  #!/bin/sh

    • #! → 스크립트를 실행할 쉘을 지정하는 선언문

    • /bin/sh → dash 쉘에 링크를 걸어두고 있다.

 

  • php

yum -y install http://ftp.riken.jp/Linux/remi/enterprise/remi-release-7.rpm
yum-config-manager --disable remi-safe
yum-config-manager --enable remi-php74
yum install -y php php-mysqlnd
  • yum repolist와 yum list는 repo패키지가 있는지 확인할 때 사용.
  • yum-config-manager을 사용하여 remi-safe를 disabled 시킨다. → 사용하지 않기 때문
  • 반대로 remi-php74는 사용할것이기 때문에 enable(활성화)시킨다.
  • php v7.4는 이전 버전과 차이를 주기위해 데몬이 php-mysqlnd이다.

 

  • mariadb

cat << EOF >> /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
yum-config-manager --enable mariadb
yum install -y MariaDB-server MariaDB-client
systemctl start mariadb
mysql -u root -e 'CREATE DATABASE wordpress_db'
mysql -u root -e "CREATE USER 'wp-admin'@'localhost' IDENTIFIED BY 'dkagh1.'"
mysql -u root -e "GRANT ALL PRIVILEGES ON wordpress_db.* to 'wp-admin'@'localhost' IDENTIFIED BY 'dkagh1.'"
mysql -u root -e "FLUSH PRIVILEGES"
  • 참고 https://downloads.mariadb.org/mariadb/repositories/#mirror=harukasan
  • cat << EOF >> a.txt → a.txt파일에 쉽게 내용을 입력할 수 있다. EOF를 입력하면 입력 종료.
  • cat 명령어로 mariadb.repo파일을 설정해주었다.
  • mysql → -e 명령어를 사용하여 mysql에 들어가지않고 해당 명령어를 실행시킨다.

 

  • wordpress

curl -o latest.tar.gz https://wordpress.org/latest.tar.gz
tar zxf latest.tar.gz
cp -r wordpress/* /var/www/html
setfacl -Rm u:apache:rwX /var/www/html
cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
sed -i '23s/database_name_here/wordpress_db/g' wp-config.php
sed -i '26s/username_here/wp-admin/g' wp-config.php
sed -i '29s/password_here/dkagh1./g' wp-config.php
  • cloud-init은 cd등의 명령어를 실행하지 못한다. → 위치를 항상 유의해야한다.
  • wp-config.php파일이 초반에는 없으므로 wp-config-sample.php파일을 복사해줘야한다.
  • sed 명령어로 vi 편집기에 들어가지 않고 파일의 내용을 편집할 수 있다.
  • sed -i 's/database_name_here/wordpress_db/' hosts → 제일 처음의 값만 바꾼다.
  • sed -i 's/database_name_here/wordpress_db/g' hosts → g → 파일 전체
  • sed -i '23s/database_name_here/wordpress_db/g' hosts → 전체에서 23번째 줄의 내용을 바꾼다.

 

 

 

※주의 사항

  • mariadb script 작성 시 대문자 소문자 구별
  • 오류 -> 로그를 확인했을 때 yum이 안되는거 같다
    • /etc/resolv.conf 파일에 nameserver 8.8.8.8 추가
    • 혹은 내부 network의 subnet 설정 -> DNS nameserver 8.8.8.8 추가

'Infra > 프라이빗 클라우드 인프라' 카테고리의 다른 글

Image 생성 (Snapshot)  (0) 2020.07.07
Open Stack - Heat (wordpress)  (0) 2020.07.02
Open Stack 운영.3 (user)  (0) 2020.07.02
Open Stack 운영.2(user)  (0) 2020.07.01
Instance  (0) 2020.07.01

댓글