공부공부 공부공부내용
[5] 오픈스택 실습4 (쉘 스크립트로 인스턴스 올리고 워드프레스 설치) 0702 미완성 본문
[5] 오픈스택 실습4 (쉘 스크립트로 인스턴스 올리고 워드프레스 설치) 0702 미완성
wkdth04 2020. 7. 2. 14:35sed - setream editor
vi 대신 사용하는 setream editor
ex) sed -i 's/localhost/xyz/g' hosts
s는 교체하겠다는 것
localhost를 (g옵션)찾아서 xyz로 바꾸겠다는 예시 _ sed활용도이해
sed -i '1s/localhost/xyz/g' hosts // 1이 s앞에 붙으면 라인을 지정하는 것.
sed -i '2,3s/localhost/xyz/g' hosts // 이번에는 범위를 지정하는 것.
cat <<EOF>> a.txt -> 유용한 리다이렉션 설명 예시
------------------------------------------------------------------
php --> DB접속하기 위한 패키지 mysql
쉘 설명
cloud config 는 관리자 권한으로 실행하게된다.
실습환경
Single VM (CPU:2, Memory:2G) Wordpress + Mariadb(MySQL)
Add Repository (PHP: 7.4, Mariadb: 10.1, MySQL: 5.6)
< Instance 구성 script >
- cloud-config
- 참고 https://cloudinit.readthedocs.io/en/latest/
- script보다 cloud-config를 이용하는것을 추천
- script는 에러가 날 확률이 높다.
- user-data : shell
< yum 오류 >
- ps -ef | grep yum
- kill -9 명령어 사용
- rm -rf /var/run/yum.pid
오늘의 실습 예정 -> 단일 vm 만들고 -> 클라우드 config구성 -> 이후 멀티구성 -> heat로 완전자동화 (실습5)
먼저 실습4 -쉘을 사용하여 Intance생성하고 wordpress 올리기 - cloud-init 활용 !!
Single VM (CPU:2, Memory:3G) Wordpress + Mariadb(MySQL)
Add Repository (PHP: 7.4, Mariadb: 10.1, MySQL: 5.6)
Installing Package 패키지 설치
Wordpress Donwload 워드프레스 다운
Wordpress Unarchive 워드프레스 아카이브 압축 풀기
Database/Table/User/Privilege
Editing wp-config.php
Starting/Enable Service
1. 강사님 쉘
강사님 쉘 스크립트 #!/bin/sh #MariaDB 준비 cat << EOF > /etc/yum.repos.d/maria.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 -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 -y install httpd php php-mysqlnd MariaDB-server MariaDB-client #wordpress설치파일 다운로드 curl -o /root/wp.tar.gz https://wordpress.org/latest.tar.gz tar xf /root/wp.tar.gz -C /var/www/html systemctl start mariadb systemctl enable mariadb #wordpress 데이터베이스 준비 mysql -u root -e 'CREATE DATABASE wordpress_db' mysql -u root -e "CREATE USER 'wp-admin'@'localhost' IDENTIFIED BY 'P@ssw0rd'" mysql -u root -e "GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp-admin'@'localhost' IDENTIFIED BY 'P@ssw0rd'" mysql -u root -e "FLUSH PRIVILEGES" 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' /var/www/html/wordpress/wp-config.php sed -i '26s/username_here/wp-admin/g' /var/www/html/wordpress/wp-config.php sed -i '29s/password_here/P@ssw0rd/g' /var/www/html/wordpress/wp-config.php systemctl start httpd systemctl enable httpd
2. 강사님하고 살짝 다른 내 쉘
1) 먼저 쉘을 짠다.
#!/bin/bash #아파치 설치 yum -y install httpd systemctl start httpd systemctl enable httpd #php 설치 #대화형이아니기때문에 설치시 -y 옵션 필수 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 #Maria DB 준비 cat << EOF > /etc/yum.repos.d/maria.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 #Maria DB 서비스 시작 yum install -y MariaDB-server yum install -y MariaDB-client systemctl start mariadb systemctl enable mariadb #wordpress 데이터베이스 준비 mysql -u root -e 'CREATE DATABSE wordpress'; mysql -u root -e "CREATE USER 'jang'@'localhost' IDENTIFIED BY 'dkagh1.'"; mysql -u root -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'jang'@'localhost' IDENTIFIED BY 'dkagh1.'"; mysql -u root -e "FLUSH PRIVILEGES"; #Wordpress 설치 파일 다운로드, 파일 압축 해제, wordpress 파일 /var/www/html 로 복사, /var/www/html 에 apache 사용자 쓰기 권한 추가 curl -o latest.tar.gz https://wordpress.org/latest.tar.gz tar xzf 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/g' /var/www/html/wordpress/wp-config.php sed -i '26s/username_here/jang/g' /var/www/html/wordpress/wp-config.php sed -i '29s/password_here/dkagh1./g' /var/www/html/wordpress/wp-config.php systemctl restart httpd
2) 인스턴스를 생성한다. 생성할 때 짠 쉘을 두가지 방법중 하나를 정해 넣는다 (파일 자체넣기 또는 쉘 때려박기)
3)인스턴스를 생성하면 커스터마이징 한 쉘이 잘 생성이 되고 있는지, 설치파일들이 잘 설치되고있는지 로그를 통해 볼 수 있다.
4) 콘솔창에서 로그인 화면이 뜨면 ssh 키인증방식으로 접속 할 수 있다.
5) 키 인증방식으로 접속하기 위해서 유동아이피를 연결해준다.
6) 이후 유동아이피 주소로 ssh 접속한다.
7) 로그파일 확인을 하면 ssh 창에서 설치가 잘 되고 있는지 알 수 있고 , 오류가 나면 어느 부분에서 오류가 나는지 확인할 수 있다.
이후 패키지 설치가 모두 끝나면
워드프로세스에 접속해 확인해볼 수 있다.
설정한 아이디와 패스워드로 접속해보면되는데.............노트북이 꼬져서 요거랑 다음 실습 모두 결과를 확인못했다^____________^
개느령
- #!/bin/sh
- #! → 스크립트를 실행할 쉘을 지정하는 선언문
- /bin/bash → bash 쉘에 링크를 걸어두고 있다.
- 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"
- 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번째 줄의 내용을 바꾼다.
- 오류
- db 설정할때 → 대문자!
- 로그를 보고 yum 부터 막히면
- /etc/resolv.conf 파일에 nameserver 8.8.8.8 추가
- 혹은 network → DNS 8.8.8.8 추가
-cloud-config : 커스터마이징 가능.
-userdata : shell 스크립트
-쉘짤때는 cd커맨드가 안되기 때문에 꼭 절대경로로 경로써줘야함
대쉬보드에서 생성할때 파일로 제공해도 되고 인스턴스 생성 부분에서 사용자정의 스크립트로 넣어도 됨.
vi a.sh
sh a.sh
chmod +x a.sh
file a.sh // asci text file
#! 샤뱅
echo $? -> return code 이전 코드를 가져와서 ? 한 명령어 // 정상 유무 확인하는 코드 볼수있음
0으로 입력되야 정상종료이다. 0가 아닌 모든 수는 오류.
------------------------------
/var/log/cloud-init.log
yum.log
messages
로 로그확인이 가능
[centos@sy-instance instance]$ history
1 systemctl restart httpd
2 sudo systemctl restart httpd
3 sudo systemctl status httpd
4 cd /var/log
5 ls
6 cat cloud-init.log
7 sudo cat cloud-init.log
8 cd /var/lib/cloud/
9 ls
10 ls -l instance
11 cd instance
12 ls
13 cat user-data.txt
14 sudo cat user-data.txt
15 tail /var/log/yum.log
16 sudo tail /var/log/yum.log
17 sudo tail -f /var/log/yum.log // f 옵션은 실시간으로 되고있는 것 확인할 때.
18 history
'클라우드 구성 및 관리 > 프라이빗 클라우드 [오픈스택]' 카테고리의 다른 글
[7]오픈스택 실습6 web 로드밸런서 (0703금) (0) | 2020.07.05 |
---|---|
[Openstack] Dashboard 사용 실습 (웹 서버, 로드밸런서) (펌) (0) | 2020.07.05 |
[4]오픈스택 실습 3 (설치된 이미지) (0) | 2020.06.30 |
[2] 오픈스택 컴포넌트 및 아키텍쳐 (0) | 2020.06.29 |
[3] open stack 인스턴스 운영개념 (0) | 2020.06.29 |