Learning Circle : cidst #5 - initial commit
This commit is contained in:
parent
58c6df72bb
commit
0f1028fb40
9 changed files with 153 additions and 2 deletions
|
@ -5,11 +5,16 @@ case "$__target_host" in
|
||||||
__motd
|
__motd
|
||||||
__timezone Asia/Seoul
|
__timezone Asia/Seoul
|
||||||
# __my_computer
|
# __my_computer
|
||||||
__colourful_file --colour yellow
|
# __colourful_file --colour yellow
|
||||||
|
__my_nginx_site $__target_host
|
||||||
;;
|
;;
|
||||||
jafo.laptop)
|
jafo.laptop)
|
||||||
__motd
|
__motd
|
||||||
__timezone Asia/Seoul
|
__timezone Asia/Seoul
|
||||||
__my_computer
|
# __my_computer
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# __my_nginx
|
||||||
|
__my_nginx_site $__target_host
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
0
youngjin.han/dot-cdist/type/__colourful_file/manifest
Normal file → Executable file
0
youngjin.han/dot-cdist/type/__colourful_file/manifest
Normal file → Executable file
8
youngjin.han/dot-cdist/type/__my_nginx/manifest
Executable file
8
youngjin.han/dot-cdist/type/__my_nginx/manifest
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# update package index
|
||||||
|
__apt_update_index
|
||||||
|
|
||||||
|
require="__apt_update_index" __package nginx --state=present
|
||||||
|
|
||||||
|
|
0
youngjin.han/dot-cdist/type/__my_nginx/singleton
Normal file
0
youngjin.han/dot-cdist/type/__my_nginx/singleton
Normal file
|
@ -0,0 +1 @@
|
||||||
|
echo "sudo service nginx reload"
|
|
@ -0,0 +1 @@
|
||||||
|
echo "service nginx reload"
|
42
youngjin.han/dot-cdist/type/__my_nginx_site/manifest
Executable file
42
youngjin.han/dot-cdist/type/__my_nginx_site/manifest
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
nginx_config_dir="/etc/nginx/conf.d"
|
||||||
|
domain="$__object_id"
|
||||||
|
|
||||||
|
__directory /var/www/html/$domain \
|
||||||
|
--parents --mode 0644
|
||||||
|
|
||||||
|
require="__directory//var/www/html/$domain" \
|
||||||
|
__file /var/www/html/$domain/index.html \
|
||||||
|
--source - --mode 0644 << EOF
|
||||||
|
Hello Cdist!!!
|
||||||
|
EOF
|
||||||
|
|
||||||
|
__my_nginx
|
||||||
|
|
||||||
|
# configure nginx
|
||||||
|
require="__my_nginx" \
|
||||||
|
__file "$nginx_config_dir/${domain}.conf" \
|
||||||
|
--mode 0644 --source - << EOF
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name $domaini;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log;
|
||||||
|
|
||||||
|
client_max_body_size 256m;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /var/www/html/$domain;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
|
||||||
|
location = /50x.html {
|
||||||
|
root /var/www/html/$domain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
42
youngjin.han/dot-cdist/type/__my_nginx_site/manifest~
Executable file
42
youngjin.han/dot-cdist/type/__my_nginx_site/manifest~
Executable file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
nginx_config_dir="/etc/nginx/conf.d"
|
||||||
|
domain="$__object_id"
|
||||||
|
|
||||||
|
__directory /var/www/html/$domain \
|
||||||
|
--parents --mode 0644
|
||||||
|
|
||||||
|
require="__directory//var/www/html/$domain" \
|
||||||
|
__file /var/www/html/$domain/index.html \
|
||||||
|
--source - --mode 0644 << EOF
|
||||||
|
Hello Cdist!!!
|
||||||
|
EOF
|
||||||
|
|
||||||
|
__my_nginx
|
||||||
|
|
||||||
|
# configure nginx
|
||||||
|
require="__my_nginx" \
|
||||||
|
__file "$nginx_config_dir/${domain}.conf" \
|
||||||
|
--mode 0644 --source - << EOF
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name $domain;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/access.log;
|
||||||
|
|
||||||
|
client_max_body_size 256m;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /var/www/html/$domain;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
|
||||||
|
location = /50x.html {
|
||||||
|
root /var/www/html/$domain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
|
@ -1,3 +1,55 @@
|
||||||
|
* 2020-05-13
|
||||||
|
*** cdist #5: Generating Code & Exploring
|
||||||
|
**** Lecture content
|
||||||
|
***** Objective
|
||||||
|
- Understand how to *generate code* and when to use it
|
||||||
|
- Exploring explorers
|
||||||
|
***** Code generation steps
|
||||||
|
- Modify the previously created type *__my_nginx_site*
|
||||||
|
- Read about cdist messaging
|
||||||
|
- If there was a change in the nginx configuration file, reload nginx
|
||||||
|
***** Explorer steps
|
||||||
|
- Modify the *__my_nginx_site* type to use the *os explorer*
|
||||||
|
- Adjust your type to work on Alpine Linux and Debian (or two
|
||||||
|
other Linux distributions of your choice)
|
||||||
|
- Set the nginx configuration directory accordingly
|
||||||
|
***** Documentation
|
||||||
|
- Explain the following in your cdist.org file
|
||||||
|
- What is the difference between gencode-remote and the remote code?
|
||||||
|
- What is the difference between gencode-local and gencode-remote?
|
||||||
|
- Locate a type that comes with upstream cdist that uses
|
||||||
|
gencode-local - which one is it? Why does it need gencode-local?
|
||||||
|
* 2020-05-11
|
||||||
|
*** cdist #4: Requirements
|
||||||
|
**** Lecture content
|
||||||
|
***** Objective
|
||||||
|
****** Understand how requirements work
|
||||||
|
***** DONE Create a new type *__my_nginx*
|
||||||
|
CLOSED: [2020-05-12 화 02:22]
|
||||||
|
****** Make it a *singleton*
|
||||||
|
****** Make it install nginx
|
||||||
|
****** Configure a host with it
|
||||||
|
****** Usually nginx is configured includes some files
|
||||||
|
****** On the target host find out which directory nginx includes
|
||||||
|
****** We name this directory *nginx_config_dir*
|
||||||
|
***** DONE Create a new type *__my_nginx_site*
|
||||||
|
CLOSED: [2020-05-12 화 02:22]
|
||||||
|
****** Assume the *object_id* is a *domain*
|
||||||
|
****** In the __my_nginx_site create a file inside the *nginx_config_dir*
|
||||||
|
****** The filename is *${domain}.conf*
|
||||||
|
****** When using *__file*, it should *require* the *nginx package*
|
||||||
|
******* Read about cdist dependencies
|
||||||
|
****** The file should be a valid nginx configuration
|
||||||
|
****** The *server name* should be set to the specified domain
|
||||||
|
****** The *root* directive should point to /var/www/html/DOMAIN
|
||||||
|
******* (replace DOMAIN with the actual domain)
|
||||||
|
***** Use both types in the initial manifest to configure the target host
|
||||||
|
****** Create at least two domains
|
||||||
|
***** Configure the target host
|
||||||
|
****** Verify that the configuration files are properly created
|
||||||
|
***** Delete the nginx package manually on the target host
|
||||||
|
***** Comment out *__my_nginx* from the initial manifest, keep the *__my_nginx_site*
|
||||||
|
****** Explain the error that you get (in your cdist.org file)
|
||||||
* 2020-05-08
|
* 2020-05-08
|
||||||
*** cdist #3: type parameters
|
*** cdist #3: type parameters
|
||||||
**** Lecture content
|
**** Lecture content
|
||||||
|
|
Loading…
Reference in a new issue