Make this tutorial more relevant to you by setting your unique IPs, paths and ports.
62 | 68 | elements inside
39 | code {
40 | white-space: pre-wrap;
41 | }
42 | }
43 |
44 | // Bordered version
45 | .table-bordered {
46 | border: 1px solid @table-border-color;
47 | > thead,
48 | > tbody,
49 | > tfoot {
50 | > tr {
51 | > th,
52 | > td {
53 | border: 1px solid @table-border-color;
54 | }
55 | }
56 | }
57 | }
58 |
59 | // Zebra-striping
60 | .table-striped > tbody > tr:nth-child(odd) {
61 | > td,
62 | > th {
63 | background-color: @table-bg-accent;
64 | }
65 | }
66 |
67 | // Hover effect
68 | .table-hover > tbody > tr:hover {
69 | > td,
70 | > th {
71 | background-color: @table-bg-hover;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/_assets/css/transitions.less:
--------------------------------------------------------------------------------
1 | @import "mixins";
2 |
3 | // override the default slide behavior to subtle fade instead
4 | .carousel-inner-fade {
5 | .item {
6 | opacity: 0;
7 | .transition-property(opacity);
8 | }
9 |
10 | .active {
11 | opacity: 1;
12 | }
13 |
14 | .active.left,
15 | .active.right {
16 | left: 0;
17 | opacity: 0;
18 | z-index: 1;
19 | }
20 |
21 | .next.left,
22 | .prev.right {
23 | opacity: 1;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/_assets/css/typography.less:
--------------------------------------------------------------------------------
1 | @import "colors";
2 |
3 | @montserrat: 'Montserrat', Helvetica, Arial, sans-serif;
4 | @helvetica: 'Helvetica Neue', Helvetica, Arial, sans-serif;
5 |
6 | .font-smoothing() {
7 | -webkit-font-smoothing: antialiased;
8 | }
9 |
10 | body {
11 | font-size: 16px;
12 | line-height: 1.6;
13 | color: @base-gray;
14 | }
15 |
16 | @font-face {
17 | font-family: 'Montserrat';
18 | font-style: normal;
19 | font-weight: 400;
20 | src: local('Montserrat-Regular'), url(https://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff) format('woff');
21 | }
22 |
23 |
24 | h1, h2, h3, h4,
25 | .h1, .h2, .h3 {
26 | font-family: @montserrat;
27 | font-weight: 400;
28 | line-height: 1.4;
29 | .font-smoothing();
30 | margin: 1em 0 .5em;
31 | }
32 |
33 | h2, .h2 {
34 | font-size: 28px;
35 | }
36 |
37 | h3, .h3 {
38 | font-size: 24px;
39 | }
40 |
41 | h4, .h4 {
42 | font-size: 18px;
43 | }
44 |
45 | .header-jumbo {
46 | font-size: 60px;
47 | margin-bottom: 50px;
48 | }
49 |
50 | @media (max-width: 768px) {
51 | .header-jumbo {
52 | font-size: 50px;
53 | }
54 | }
55 |
56 | .lead {
57 | font-size: 18px;
58 | line-height: 1.8;
59 | font-weight: 400; /* bootstrap's default .lead font-weight is causing legibility issues */
60 | }
61 |
62 | .lead-subtle,
63 | .text-muted {
64 | color: #7f8690;
65 | }
66 |
67 | .text-alternating {
68 | padding-left: 0.5em;
69 | padding-right: 0.5em;
70 | .gradient(rgba(0, 0, 0, 0) 50%, rgba(255, 255, 255, 0.8) 50%);
71 | background-repeat: repeat-x;
72 | background-size: 2px 2px;
73 | background-position: 0 90%;
74 | }
75 |
76 | .heavy-text {
77 | font-weight: 600;
78 | .font-smoothing();
79 | }
80 |
81 | .header-strike-back {
82 | margin-top: 60px;
83 | position: relative;
84 | overflow: hidden;
85 | }
86 |
87 | .header-strike-back-body {
88 | display: inline-block;
89 | vertical-align: baseline;
90 | position: relative;
91 | padding: 0 20px;
92 |
93 | &:before,
94 | &:after {
95 | content: '';
96 | display: block;
97 | width: 1000px;
98 | position: absolute;
99 | top: 50%;
100 | border-top: 1px solid rgba(0, 0, 0, 0.3);
101 | }
102 |
103 | &:before { right: 100%; }
104 | &:after { left: 100%; }
105 | }
106 |
107 | .header-strike-back-inverted .header-strike-back-body {
108 | &:before,
109 | &:after {
110 | border-top-color: rgba(255, 255, 255, 0.3);
111 | }
112 | }
113 |
--------------------------------------------------------------------------------
/_assets/css/video.less:
--------------------------------------------------------------------------------
1 | .video-lecture-container {
2 | position: relative;
3 | width: 100%;
4 | height: 0px;
5 | padding-bottom: 56%;
6 | padding-top: 50px;
7 | }
8 |
9 | .video-lecture-container .smart-player-embed-container-iframe {
10 | position: absolute;
11 | width: 100%;
12 | height: 100%;
13 | top: 0;
14 | }
15 |
--------------------------------------------------------------------------------
/_assets/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/_assets/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/_assets/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/_assets/fonts/mesosphere-iconset/mesosphere-iconset.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/mesosphere-iconset/mesosphere-iconset.eot
--------------------------------------------------------------------------------
/_assets/fonts/mesosphere-iconset/mesosphere-iconset.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
14 |
--------------------------------------------------------------------------------
/_assets/fonts/mesosphere-iconset/mesosphere-iconset.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/mesosphere-iconset/mesosphere-iconset.ttf
--------------------------------------------------------------------------------
/_assets/fonts/mesosphere-iconset/mesosphere-iconset.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/fonts/mesosphere-iconset/mesosphere-iconset.woff
--------------------------------------------------------------------------------
/_assets/img/ZeroClipboard.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/ZeroClipboard.swf
--------------------------------------------------------------------------------
/_assets/img/alerts/alert-icons-67x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/alerts/alert-icons-67x16.png
--------------------------------------------------------------------------------
/_assets/img/chronos-docker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/chronos-docker.png
--------------------------------------------------------------------------------
/_assets/img/contact/stamen-toner-map-2554x1410.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/contact/stamen-toner-map-2554x1410.jpg
--------------------------------------------------------------------------------
/_assets/img/fault-tolerant-symbols-lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/fault-tolerant-symbols-lg.png
--------------------------------------------------------------------------------
/_assets/img/gce-topology.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/gce-topology.png
--------------------------------------------------------------------------------
/_assets/img/google-project-id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/google-project-id.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-114x114.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-120x120.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-144x144.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-152x152.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-57x57.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-60x60.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-72x72.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon-apple-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon-apple-76x76.png
--------------------------------------------------------------------------------
/_assets/img/h1-mesosphere/components/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/h1-mesosphere/components/icons/favicon.ico
--------------------------------------------------------------------------------
/_assets/img/hn.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/hn.gif
--------------------------------------------------------------------------------
/_assets/img/learn/README:
--------------------------------------------------------------------------------
1 | Convert screenshots to JPG for web:
2 | for png in `ls *.png`; do jpg=`echo $png | sed 's/png/jpg/'`; gm convert +profile "*" "$png" "$jpg" ; done
3 |
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/consoles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/consoles.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-frameworks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-frameworks.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-sandbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-sandbox.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-slave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-slave.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-stderr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-stderr.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-task.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console-tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console-tasks.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/mesos-console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/mesos-console.png
--------------------------------------------------------------------------------
/_assets/img/learn/debugging/ssh-ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/debugging/ssh-ps.png
--------------------------------------------------------------------------------
/_assets/img/learn/get-started-1544x442.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/get-started-1544x442.jpg
--------------------------------------------------------------------------------
/_assets/img/learn/mesos-console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/mesos-console.png
--------------------------------------------------------------------------------
/_assets/img/learn/periodic-table-721x411.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/periodic-table-721x411.png
--------------------------------------------------------------------------------
/_assets/img/learn/rails_create.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/rails_create.jpg
--------------------------------------------------------------------------------
/_assets/img/learn/rails_out.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/rails_out.jpg
--------------------------------------------------------------------------------
/_assets/img/learn/rails_running.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/rails_running.jpg
--------------------------------------------------------------------------------
/_assets/img/learn/service-icons-551x45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/service-icons-551x45.png
--------------------------------------------------------------------------------
/_assets/img/learn/service-icons-857x77.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/learn/service-icons-857x77.png
--------------------------------------------------------------------------------
/_assets/img/marathon-docker-kill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-docker-kill.png
--------------------------------------------------------------------------------
/_assets/img/marathon-docker-scaling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-docker-scaling.png
--------------------------------------------------------------------------------
/_assets/img/marathon-docker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-docker.png
--------------------------------------------------------------------------------
/_assets/img/marathon-tomcat-config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-tomcat-config.png
--------------------------------------------------------------------------------
/_assets/img/marathon-tomcat-running.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-tomcat-running.png
--------------------------------------------------------------------------------
/_assets/img/marathon-tomcat-scaling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon-tomcat-scaling.png
--------------------------------------------------------------------------------
/_assets/img/marathon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/marathon.png
--------------------------------------------------------------------------------
/_assets/img/mesos-active-tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/mesos-active-tasks.png
--------------------------------------------------------------------------------
/_assets/img/press/readwrite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_assets/img/press/techcrunch.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
--------------------------------------------------------------------------------
/_assets/img/press/thenewstack.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/press/thenewstack.jpeg
--------------------------------------------------------------------------------
/_assets/img/service-discovery/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/service-discovery/1.png
--------------------------------------------------------------------------------
/_assets/img/service-discovery/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/service-discovery/2.png
--------------------------------------------------------------------------------
/_assets/img/service-discovery/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/service-discovery/3.png
--------------------------------------------------------------------------------
/_assets/img/team/perk-icons-150x1224.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/perk-icons-150x1224.png
--------------------------------------------------------------------------------
/_assets/img/team/perks-work-1030x600.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/perks-work-1030x600.jpg
--------------------------------------------------------------------------------
/_assets/img/team/stamen-map-1170x420.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/stamen-map-1170x420.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-backend-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-backend-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-frontend-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-frontend-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-marketing-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-marketing-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-operations-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-operations-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-ovaloffice-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-ovaloffice-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-people-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-people-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/team/team-tile-ux-1170x468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/team/team-tile-ux-1170x468.jpg
--------------------------------------------------------------------------------
/_assets/img/tutorial-logos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/tutorial-logos.png
--------------------------------------------------------------------------------
/_assets/img/tutorial-logos@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/tutorial-logos@2x.png
--------------------------------------------------------------------------------
/_assets/img/unify-workloads-icons-lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/unify-workloads-icons-lg.png
--------------------------------------------------------------------------------
/_assets/img/vpn-selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/_assets/img/vpn-selection.png
--------------------------------------------------------------------------------
/_assets/js/application.js:
--------------------------------------------------------------------------------
1 | // The big kahuna. Add all site JavaScript includes here. Put JavaScript content
2 | // into separate files, not in this file.
3 | //
4 | //= require mesosphere
5 | //= require tutorials
6 | //= require progress
7 | //= require libraries/embedded-smart-player.min.js
8 |
--------------------------------------------------------------------------------
/_assets/js/libraries/perfect-scrollbar-master/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false
3 | }
4 |
--------------------------------------------------------------------------------
/_assets/js/libraries/perfect-scrollbar-master/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | bower_components
4 |
--------------------------------------------------------------------------------
/_assets/js/libraries/perfect-scrollbar-master/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "passfail" : false,
3 | "maxerr" : 100,
4 |
5 | "browser" : true,
6 |
7 | "node" : true,
8 | "rhino" : false,
9 | "couch" : false,
10 | "wsh" : false,
11 |
12 | "jquery" : true,
13 | "prototypejs" : false,
14 | "mootools" : false,
15 | "dojo" : false,
16 |
17 | "predef" : [
18 | "require",
19 | "define"
20 | ],
21 |
22 | "debug" : false,
23 | "devel" : true,
24 |
25 | "strict" : true,
26 | "globalstrict" : false,
27 |
28 | "asi" : false,
29 | "laxbreak" : false,
30 | "bitwise" : true,
31 | "boss" : false,
32 | "curly" : true,
33 | "eqeqeq" : true,
34 | "eqnull" : false,
35 | "evil" : false,
36 | "expr" : false,
37 | "forin" : false,
38 | "immed" : true,
39 | "latedef" : true,
40 | "loopfunc" : false,
41 | "noarg" : true,
42 | "regexp" : true,
43 | "regexdash" : false,
44 | "scripturl" : true,
45 | "shadow" : false,
46 | "supernew" : false,
47 | "undef" : true,
48 |
49 | "newcap" : true,
50 | "noempty" : false,
51 | "nonew" : true,
52 | "nomen" : false,
53 | "onevar" : false,
54 | "plusplus" : false,
55 | "sub" : false,
56 | "trailing" : true,
57 | "white" : true,
58 | "indent" : 2,
59 | "laxcomma" : true,
60 | "camelcase" : true
61 | }
62 |
--------------------------------------------------------------------------------
/_assets/js/libraries/perfect-scrollbar-master/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 | before_script:
5 | - npm install -g grunt-cli
6 |
--------------------------------------------------------------------------------
/_assets/js/libraries/retina-1.3.0/retina.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Retina.js v1.3.0
3 | *
4 | * Copyright 2014 Imulus, LLC
5 | * Released under the MIT license
6 | *
7 | * Retina.js is an open source script that makes it easy to serve
8 | * high-resolution images to devices with retina displays.
9 | */
10 | !function(){function a(){}function b(a){return f.retinaImageSuffix+a}function c(a,c){if(this.path=a||"","undefined"!=typeof c&&null!==c)this.at_2x_path=c,this.perform_check=!1;else{if(void 0!==document.createElement){var d=document.createElement("a");d.href=this.path,d.pathname=d.pathname.replace(g,b),this.at_2x_path=d.href}else{var e=this.path.split("?");e[0]=e[0].replace(g,b),this.at_2x_path=e.join("?")}this.perform_check=!0}}function d(a){this.el=a,this.path=new c(this.el.getAttribute("src"),this.el.getAttribute("data-at2x"));var b=this;this.path.check_2x_variant(function(a){a&&b.swap()})}var e="undefined"==typeof exports?window:exports,f={retinaImageSuffix:"@2x",check_mime_type:!0,force_original_dimensions:!0};e.Retina=a,a.configure=function(a){null===a&&(a={});for(var b in a)a.hasOwnProperty(b)&&(f[b]=a[b])},a.init=function(a){null===a&&(a=e);var b=a.onload||function(){};a.onload=function(){var a,c,e=document.getElementsByTagName("img"),f=[];for(a=0;a1?!0:e.matchMedia&&e.matchMedia(a).matches?!0:!1};var g=/\.\w+$/;e.RetinaImagePath=c,c.confirmed_paths=[],c.prototype.is_external=function(){return!(!this.path.match(/^https?\:/i)||this.path.match("//"+document.domain))},c.prototype.check_2x_variant=function(a){var b,d=this;return this.is_external()?a(!1):this.perform_check||"undefined"==typeof this.at_2x_path||null===this.at_2x_path?this.at_2x_path in c.confirmed_paths?a(!0):(b=new XMLHttpRequest,b.open("HEAD",this.at_2x_path),b.onreadystatechange=function(){if(4!==b.readyState)return a(!1);if(b.status>=200&&b.status<=399){if(f.check_mime_type){var e=b.getResponseHeader("Content-Type");if(null===e||!e.match(/^image/i))return a(!1)}return c.confirmed_paths.push(d.at_2x_path),a(!0)}return a(!1)},b.send(),void 0):a(!0)},e.RetinaImage=d,d.prototype.swap=function(a){function b(){c.el.complete?(f.force_original_dimensions&&(c.el.setAttribute("width",c.el.offsetWidth),c.el.setAttribute("height",c.el.offsetHeight)),c.el.setAttribute("src",a)):setTimeout(b,5)}"undefined"==typeof a&&(a=this.path.at_2x_path);var c=this;b()},a.isRetina()&&a.init(e)}();
--------------------------------------------------------------------------------
/_assets/js/progress.js:
--------------------------------------------------------------------------------
1 | (function() {
2 |
3 | if (window.location.pathname != "/tutorials/") { return; }
4 |
5 | var diameter = 80;
6 | var radius = diameter / 2;
7 |
8 | var arc = d3.svg.arc()
9 | .outerRadius(radius)
10 | .innerRadius(radius - 5);
11 |
12 | var pie = d3.layout.pie()
13 | .sort(null)
14 | .value(function(d) { return d; });
15 |
16 | var tutorialProgress = JSON.parse(
17 | localStorage.getItem("tutorialProgress")) || {};
18 |
19 | d3.selectAll(".learn-progress-dial").each(function() {
20 | var step = tutorialProgress[this.getAttribute("data-key")];
21 | if (step === "s") {
22 | step = parseInt(this.getAttribute("data-steps"), 10);
23 | } else {
24 | step = parseInt(step, 10) || 0;
25 | }
26 |
27 | var progress = (step / parseInt(this.getAttribute("data-steps"), 10)) * 100;
28 | var data = [ progress, 100 - progress ];
29 |
30 | var svg = d3.select(this).select(".dial")
31 | .append("svg")
32 | .attr({ "width": diameter, "height": diameter })
33 | .append("g")
34 | .attr("transform", "translate(" + radius + "," + radius + ")");
35 |
36 | var g = svg.selectAll()
37 | .data(pie(data))
38 | .enter().append("g")
39 | .classed("progress-state", function(d, i) { return i === 0; })
40 | .classed("progress-fill", function(d, i) { return i === 1; })
41 | .append("path")
42 | .attr("d", arc);
43 |
44 | d3.select(this)
45 | .classed("progress-none", progress === 0 )
46 | .classed("progress-active", progress > 0 && progress < 100 )
47 | .classed("progress-complete", progress === 100 )
48 | .select(".dial")
49 | .append("div")
50 | .classed("dial-text", true)
51 | .text(Math.floor(progress) + "%");
52 | });
53 |
54 | })();
55 |
56 |
--------------------------------------------------------------------------------
/_assets/js/templates/job-opening.jst.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%=title%>
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/_config.dev.yml:
--------------------------------------------------------------------------------
1 | env: development
2 | url: http://0.0.0.0:4000
3 |
4 | assets:
5 | baseurl: '/assets/'
6 |
--------------------------------------------------------------------------------
/_config.staging.yml:
--------------------------------------------------------------------------------
1 | url: http://open-staging.mesosphere.com.s3-website-us-east-1.amazonaws.com
2 | env: staging
3 |
4 | assets:
5 | baseurl: '/assets/'
6 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | lsi: false
2 | markdown: rdiscount
3 | permalink: pretty
4 | highlighter: pygments
5 | encoding: utf-8
6 | url: https://open.mesosphere.com
7 |
8 | env: production
9 | gems:
10 | - jekyll-assets
11 | - jekyll-redirect-from
12 |
13 | assets:
14 | baseurl: '/assets/'
15 | cache: true
16 | css_compressor: yui
17 | js_compressor: yui
18 | sources:
19 | - _assets/css
20 | - _assets/fonts
21 | - _assets/img
22 | - _assets/js
23 | - _assets/bower_components
24 |
25 | exclude: ['bin', '*.bash', 'README.md', 'Gemfile', 'Gemfile.lock',
26 | 'Rakefile', 'CNAME', 'apache-aws.profile', 'vendor', 'Makefile', 'Dockerfile', 'utils']
27 |
--------------------------------------------------------------------------------
/_data/docs_sidebar.yml:
--------------------------------------------------------------------------------
1 |
2 |
3 | - title: "Advanced Mesos Course"
4 | href: "/advanced-course/"
5 | sub:
6 |
7 | - title: "Introduction"
8 | href: "/advanced-course/introduction/"
9 |
10 | - title: "1: Installing Software"
11 | href: "/advanced-course/installing-software/"
12 |
13 | - title: "2: Installing ZooKeeper"
14 | href: "/advanced-course/installing-zookeeper/"
15 |
16 | - title: "3: Using Apache Mesos"
17 | href: "/advanced-course/using-apache-mesos/"
18 |
19 | - title: "4: Starting Marathon"
20 | href: "/advanced-course/starting-marathon/"
21 |
22 | - title: "5: Using the Marathon GUI"
23 | href: "/advanced-course/using-the-marathon-gui/"
24 |
25 | - title: "6: Marathon REST API"
26 | href: "/advanced-course/marathon-rest-api/"
27 |
28 | - title: "7: Building and Running Mesos DNS"
29 | href: "/advanced-course/building-and-running-mesos-dns/"
30 |
31 | - title: "8: Installing Chronos"
32 | href: "/advanced-course/installing-chronos/"
33 |
34 | - title: "9: Creating A Slave Node"
35 | href: "/advanced-course/creating-a-slave-node/"
36 |
37 | - title: "10: Installing Mesos"
38 | href: "/advanced-course/installing-mesos/"
39 |
40 | - title: "11: Scaling To Two Nodes"
41 | href: "/advanced-course/scaling-to-two-nodes/"
42 |
43 | - title: "12: Deploying A Web App Using Docker"
44 | href: "/advanced-course/deploying-a-web-app-using-docker/"
45 |
46 | - title: "13: Distributing Docker To Multiple Nodes"
47 | href: "/advanced-course/distributing-docker-to-multiple-nodes/"
48 |
49 | - title: "14: Installing and Using DCOS CLI"
50 | href: "/advanced-course/installing-and-using-dcos-cli/"
51 |
52 | - title: "15: Starting Four Nodes"
53 | href: "/advanced-course/starting-four-nodes/"
54 |
55 | - title: "16: Recreating the Cluster Using Ansible"
56 | href: "/advanced-course/recreating-the-cluster-using-ansible/"
57 |
58 | - title: "17: Advanced Usage of Marathon"
59 | href: "/advanced-course/advanced-usage-of-marathon/"
60 |
61 | - title: "18: Advanced Usage of Chronos"
62 | href: "/advanced-course/advanced-usage-of-chronos/"
63 |
64 | - title: "19: Troubleshooting"
65 | href: "/advanced-course/troubleshooting/"
66 |
67 | - title: "20: Advanced Cluster Building"
68 | href: "/advanced-course/advanced-cluster-building/"
69 |
70 |
71 |
72 | - title: "Downloads"
73 | href: "/downloads/mesos/"
74 |
--------------------------------------------------------------------------------
/_includes/downloads/repository-setup.md:
--------------------------------------------------------------------------------
1 | Mesosphere has official package repositories which connect directly to the native package management tools of your favorite Linux distribution — namely apt-get and yum — to install Mesos on top of the most common Linux distributions (RedHat, CentOS, Ubuntu and Debian).
2 |
3 | ##### Supported Distributions
4 |
5 | + Ubuntu 16.04 (xenial)
6 | + Ubuntu 15.10 (wily)
7 | + Ubuntu 14.04 (trusty)
8 | + Ubuntu 12.04 (precise)
9 | + Debian 8 (jessie)
10 | + Enterprise Linux 7 (RedHat/CentOS)
11 | + Enterprise Linux 6 (RedHat/CentOS)
12 |
13 | ##### Debian / Ubuntu
14 |
15 | ```sh
16 | # Setup
17 | sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E56151BF
18 | DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
19 | CODENAME=$(lsb_release -cs)
20 |
21 | # Add the repository
22 | echo "deb http://repos.mesosphere.com/${DISTRO} ${CODENAME} main" | \
23 | sudo tee /etc/apt/sources.list.d/mesosphere.list
24 | sudo apt-get -y update
25 | ```
26 |
27 | ##### RedHat 6 / CentOS 6
28 |
29 | ```sh
30 | # Add the repository
31 | sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
32 | ```
33 |
34 | ##### RedHat 7 / CentOS 7
35 |
36 | ```sh
37 | # Add the repository
38 | sudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
39 | ```
40 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 | {% javascript application %}
15 |
--------------------------------------------------------------------------------
/_includes/instruction-link.html:
--------------------------------------------------------------------------------
1 | {% capture pkg_url %}https://downloads.mesosphere.io/master/{{ pkg.path }}{% endcapture %}
2 | {% capture egg_url %}https://downloads.mesosphere.io/master/{{ pkg.egg_path }}{% endcapture %}
3 | {% capture tutorial_params %}master-ip=1.1.1.1&mesos-pkg={{ pkg_url | cgi_escape }}&mesos-egg={{ egg_url | cgi_escape }}{% endcapture %}
4 | /{{ pkg.instructions }}/?{{ tutorial_params }}
5 |
--------------------------------------------------------------------------------
/_includes/mesos/deep-dive/menu.md:
--------------------------------------------------------------------------------
1 | * [Mesos Master Configuration](/mesos/deep-dive/mesos-master)
2 | * [Mesos Slave Configuration](/mesos/deep-dive/mesos-slave)
3 |
--------------------------------------------------------------------------------
/_includes/navbar.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/_includes/sidebar.html:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
67 |
68 |
--------------------------------------------------------------------------------
/_includes/tutorial_modal_install.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
33 |
32 |
34 |
--------------------------------------------------------------------------------
/_includes/tutorials/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ page.title }}
5 |
8 |
9 |
10 | {% assign total_steps = page.steps.size | plus: 1 %}
11 |
25 |
26 |
--------------------------------------------------------------------------------
/_includes/tutorials/overview.html:
--------------------------------------------------------------------------------
1 |
2 | {% include tutorials/header.html %}
3 |
4 |
5 |
6 |
8 | Start Tutorial
9 |
10 | {{ tutorial.blurb }}
11 |
12 | You'll need:
13 | {% for resource in tutorial.resources %}
14 | {{ resource.name }}
15 | {% unless forloop.last %},{% endunless %}
16 | {% endfor %}
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | Overview: {{ page.title }}
31 |
32 | {{ page.overview }}
33 |
34 |
35 | {% for step in page.steps %}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | Step {{ forloop.index0 | plus: 1 }}: {{ step.title }}
44 |
45 |
46 | {{ step.blurb }}
47 |
48 |
49 | {% endfor %}
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/_includes/tutorials/signup.html:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/_includes/tutorials/step.html:
--------------------------------------------------------------------------------
1 |
2 | {% include tutorials/header.html %}
3 |
4 |
5 |
6 |
7 | {% unless forloop.last %}
8 |
11 | Next step
12 |
13 | {% endunless %}
14 | {% if forloop.last %}
15 |
18 | Next step
19 |
20 | {% endif %}
21 | {% unless forloop.first %}
22 |
25 | Previous
26 |
27 | {% endunless %}
28 | {% if forloop.first %}
29 |
32 | Overview
33 |
34 | {% endif %}
35 |
36 |
37 | {{ step.instruction }}
38 |
39 |
40 |
41 | {% if step.blackboard %}
42 | {{ step.blackboard | render }}
43 | {% elsif step.codeboard %}
44 | {{ step.codeboard | escape }}
45 | {% endif %}
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/_includes/tutorials/success.html:
--------------------------------------------------------------------------------
1 |
2 | {% include tutorials/header.html %}
3 |
4 |
5 |
16 |
17 |
18 |
19 | {% if framework.paperkraft.img %}
20 |
21 | {% endif %}
22 |
23 |
24 | {{ framework.paperkraft.title }}
25 | {{ framework.paperkraft.blurb }}
26 |
27 |
28 | {% include tutorials/signup.html %}
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/_layouts/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ page.title }} · Mesosphere
5 |
6 | {% if page.description %}
7 |
8 | {% else %}
9 |
10 | {% endif %}
11 |
12 |
13 |
14 |
16 |
18 | {% stylesheet mesosphere %}
19 |
20 | {% if site.env == 'production' %}
21 |
22 |
27 | {% endif %}
28 |
29 | {{ content }}
30 |
31 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: base
3 | ---
4 |
5 |
6 | {% comment %} Google Tag Manager {% endcomment %}
7 |
9 |
14 | {% comment %} End Google Tag Manager {% endcomment %}
15 |
16 |
17 |
18 | {% include navbar.html %}
19 |
20 | {{ content }}
21 |
22 | {% include footer.html %}
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/_layouts/doc.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 | {% include sidebar.html %}
8 |
9 |
10 |
11 | {{page.title}}
12 |
13 | {{ content }}
14 |
15 |
16 |
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 |
8 |
9 | {{ page.title }}
10 |
11 | -
12 |
13 |
16 |
17 | {% if page.author %}
18 | -
19 |
20 |
21 |
22 |
23 | {{ site.data.authors[page.author].name }}
24 |
25 |
26 |
27 |
28 | {% elsif page.authors %}
29 | -
30 |
31 |
32 |
33 | {% for author in page.authors %}
34 |
35 | {{ site.data.authors[author].name }}{% unless forloop.last %}, {% endunless %}
36 |
37 | {% endfor %}
38 |
39 |
40 |
41 | {% endif %}
42 | {% if page.categories %}
43 | {% for category in page.categories %}
44 | -
45 |
46 |
49 | {{ site.data.categories[category].title }}
50 |
51 |
52 | {% endfor %}
53 | {% endif %}
54 |
55 |
56 |
57 | {{ content }}
58 |
59 |
60 | {% include blog/_footer.html url=page.url %}
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/_layouts/tutorial.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: unwrapped
3 | ---
4 |
5 | {% assign framework = site.data.tutorials[page.framework] %}
6 | {% assign tutorial = framework.tutorials[page.tutorial_name] %}
7 |
8 |
9 |
10 |
16 |
17 |
18 |
19 |
22 |
20 |
21 |
23 | {% endunless %}
24 |
25 |
14 | {% unless page.hide_configure == true %}
15 |
26 |
27 |
28 | {% include tutorials/overview.html hide_progress="true" %}
29 | {% for step in page.steps %}
30 | {% include tutorials/step.html %}
31 | {% endfor %}
32 | {% include tutorials/success.html %}
33 |
34 |
35 |
36 |
37 |
38 | {% if page.tutorial_modal %}
39 | {% include {{page.tutorial_modal}} %}
40 | {% else %}
41 | {% include tutorial_modal_default.html %}
42 | {% endif %}
43 |
44 |
45 |
56 |
55 |
57 |
58 |
59 | Personalize your experience
60 |
61 | Make this tutorial more relevant to you by setting your unique IPs, paths and ports.
62 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/_layouts/unwrapped.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: base
3 | ---
4 |
5 |
7 | {% comment %} Google Tag Manager {% endcomment %}
8 |
10 |
15 | {% comment %} End Google Tag Manager {% endcomment %}
16 |
17 | {% include navbar.html %}
18 | {{ content }}
19 | {% include footer.html dark=true %}
20 |
21 |
--------------------------------------------------------------------------------
/_plugins/asset-preprocessor.rb:
--------------------------------------------------------------------------------
1 | require "sprockets"
2 | require "tilt"
3 |
4 | class LiquidProcessor < Tilt::LiquidTemplate
5 | def evaluate context, locals, &block
6 | @engine.render locals, {
7 | :filters => [Jekyll::Filters],
8 | :registers => {
9 | :site => context.site
10 | }
11 | }
12 | end
13 | end
14 |
15 | Sprockets.register_preprocessor "application/javascript", LiquidProcessor
16 |
--------------------------------------------------------------------------------
/_plugins/bundler.rb:
--------------------------------------------------------------------------------
1 | require "rubygems"
2 | require "bundler/setup"
3 | Bundler.require(:default)
4 |
--------------------------------------------------------------------------------
/_plugins/less.rb:
--------------------------------------------------------------------------------
1 | require "sprockets"
2 | require "sprockets-less"
3 | require "sprockets/less/functions"
4 | require "tilt"
5 |
6 | module Sprockets
7 | module Less
8 | module Functions
9 | def asset_url(asset)
10 | "url(#{sprockets_context.asset_path(asset)})"
11 | end
12 | end
13 | end
14 | end
15 |
16 | class LiquidProcessor < Tilt::LiquidTemplate
17 | def evaluate context, locals, &block
18 | @engine.render locals, {
19 | :filters => [Jekyll::Filters],
20 | :registers => {
21 | :site => context.site
22 | }
23 | }
24 | end
25 | end
26 |
27 | Sprockets.register_preprocessor "text/css", LiquidProcessor
28 | Sprockets.register_preprocessor "application/javascript", LiquidProcessor
29 |
--------------------------------------------------------------------------------
/_plugins/mesos-video.rb:
--------------------------------------------------------------------------------
1 | module Jekyll
2 | class RenderMesosVideo < Liquid::Tag
3 |
4 | def initialize(tag_name, videoFile, tokens)
5 | super
6 | @videoFile = videoFile.strip!
7 | end
8 |
9 | def render(context)
10 | ""
11 | end
12 | end
13 | end
14 |
15 | Liquid::Template.register_tag 'mesos_video', Jekyll::RenderMesosVideo
16 |
--------------------------------------------------------------------------------
/_plugins/render.rb:
--------------------------------------------------------------------------------
1 | require "liquid"
2 |
3 | module Jekyll
4 | module Filters
5 | def render(input)
6 | Liquid::Template.parse(input).render({}, {
7 | :filters => [Jekyll::Filters],
8 | :registers => {
9 | :site => @context.registers[:site]
10 | }
11 | })
12 | end
13 | end
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/advanced-course/creating-a-slave-node.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 9 – Creating A Slave Node
4 |
5 | redirect_from:
6 | - /intro-course/ex9.html
7 | ---
8 |
9 | Using a single node is boring. You'll now create a second node to learn how the Mesosphere stack
10 | works with multiple machines, which is the entire point. Most of this exercise is a repeat of
11 | the first 8 exercises but compressed and simplified for the requirements of a slave node.
12 |
13 | In this exercise you will:
14 |
15 | 1. Make sure all the ``node1`` services will restart on reboot with ``chkconfig``.
16 | 2. Halt the Vagrant for ``node1`` and make a copy of it.
17 | 3. Use that copy to create a new master node with a new two node ``Vagrantfile``.
18 |
19 |
20 | Video Lecture
21 | -------------
22 |
23 | {% mesos_video Mesos-Intro-Lecture-9 %}
24 |
25 |
26 | Quick Reference
27 | ---------------
28 |
29 | You need to do some cleanup before you can shut down and pacakge ``node1``. Make sure that all of the services are
30 | properly set to start on boot with ``chkconfig``:
31 |
32 | ```
33 | [node1]$ sudo chkconfig zookeeper-server on
34 | [node1]$ sudo chkconfig mesos-master on
35 | [node1]$ sudo chkconfig mesos-slave on
36 | [node1]$ sudo chkconfig marathon on
37 | # if you are running chronos with marathon then do not do this
38 | [node1]$ sudo chkconfig chronos on
39 | ```
40 |
41 | Once you do that we need to make a Vagrant box out of it so we can copy it over to our new setup:
42 |
43 | ```
44 | $ vagrant halt
45 | $ vagrant package default
46 | $ vagrant destroy default
47 | $ vagrant box add mesos-master package.box
48 | ```
49 |
50 |
51 | Next you need to add a two node configuration to your ``Vagrantfile``. The line that has your network config now needs this:
52 |
53 | ```
54 | # -*- mode: ruby -*-
55 | # vi: set ft=ruby :
56 |
57 | Vagrant.configure(2) do |config|
58 | config.vm.box = "bento/centos-7.1"
59 | config.vm.define "node1" do |node1|
60 | node1.vm.network "private_network", ip: "192.168.33.10"
61 | node1.vm.hostname = "node1"
62 | node1.vm.box = "mesos-master"
63 | end
64 |
65 | config.vm.define "node2" do |node2|
66 | node2.vm.network "private_network", ip: "192.168.33.11"
67 | node2.vm.hostname = "node2"
68 | end
69 | end
70 | ```
71 |
72 |
73 | Once you have that in your ``Vagrantfile`` you can then do ``vagrant up`` and it will recreate your original Vagrant master from the ``package.box`` file you created naming it ``node1``, and start a new VM named ``node2`` with no configuration in it.
74 |
75 | Further Study
76 | -------------
77 |
78 | * Read more about Vagrant multi-machine configurations at http://docs.vagrantup.com/v2/multi-machine/
79 |
80 |
81 |
--------------------------------------------------------------------------------
/advanced-course/distributing-docker-to-multiple-nodes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 13 – Distributing Docker To Multiple Nodes
4 |
5 | redirect_from:
6 | - /intro-course/ex13.html
7 | ---
8 |
9 | After building the Docker image in Exercise 12, you can easily deploy the Outyet web application to your ``node2`` server.
10 | You simply save the Docker and load it on ``node2`` and then tell Marathon to scale it. This simple procedure lets you automate the deployment
11 | of nearly any application that you can "dockerize".
12 |
13 | In this exercise:
14 |
15 | 1. Save the Docker image to a file named ``outyet.tar.gz``.
16 | 2. Copy the Docker image to the ``/vagrant/`` directory in ``node1``.
17 | 3. Load the ``outyet.tar.gz`` docker container into ``node2``.
18 | 4. Use Marathon to scale Outyet to two nodes.
19 |
20 |
21 | Video Lecture
22 | -------------
23 |
24 | {% mesos_video Mesos-Intro-Lecture-13 %}
25 |
26 |
27 | Quick Reference
28 | ---------------
29 |
30 | Save the Docker image:
31 |
32 | ```
33 | [node1]$ sudo docker save --output=outyet.tar.gz outyet
34 | ```
35 |
36 | Send the tar.gz file to ``node2``:
37 |
38 | ```
39 | [node1]$ cp outyet.tar.gz /vagrant/
40 | ```
41 |
42 | Install Docker on ``node2``:
43 |
44 | ```
45 | $ vagrant ssh node2
46 | [node2]$ sudo yum install -y device-mapper-event-libs docker
47 | [node2]$ sudo chkconfig docker on
48 | [node2]$ sudo service docker start
49 | [node2]$ echo 'docker,mesos' | sudo tee /etc/mesos-slave/containerizers
50 | [node2]$ sudo service mesos-slave restart
51 | ```
52 |
53 | Import the ``outyet.tar.gz`` file that you made:
54 |
55 | ```
56 | [node2]$ sudo docker load --input=/vagrant/outyet.tar.gz
57 | ```
58 |
59 | Test that Docker is now installed on the ``node2`` VM:
60 |
61 | ```
62 | [node2]$ sudo docker run --publish 6060:8080 --name test --rm outyet
63 | ```
64 |
65 | Test that Docker is running on http://192.168.33.11:6060/.
66 |
67 | Enter CTRL-C and go to Marathon and expand this to 2 nodes. Watch the video to
68 | see me doing it. At this point, hopefully you know how to go into Marathon and
69 | instruct it to run more than one node.
70 |
71 | Further Study
72 | -------------
73 |
74 | * On your *local host* computer, use ``tar -tzvf outyet.tar.gz`` to see what is inside it.
75 |
76 |
--------------------------------------------------------------------------------
/advanced-course/installing-and-using-dcos-cli.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 14 – Installing and Using DCOS CLI
4 |
5 | redirect_from:
6 | - /intro-course/ex14.html
7 | ---
8 |
9 | This exercise gives you access to various files on the Apache Mesos cluster, among other features.
10 | The best tool for doing this is the [DCOS CLI](https://github.com/mesosphere/dcos-cli) project which leverages
11 | the latest APIs to give you a full suite of tools.
12 |
13 | In this exercise:
14 |
15 | 1. Follow the installation instructions as described in the DCOS CLI project's [Setup instructions](https://github.com/mesosphere/dcos-cli#setup)
16 | 2. Use the new ``dcos`` command to work with the cluster in various scenarios.
17 |
18 | For more information on what is possible with DCOS CLI, see the [list of commands](https://docs.mesosphere.com/using/cli/).
19 |
20 | Further Study
21 | -------------
22 |
23 | * Visit the [dcos-cli github project](https://github.com/mesosphere/dcos-cli#setup) and read the rest of the README file to learn more.
24 |
25 | Video Lecture
26 | -------------
27 |
28 | _Please note: this video lecture covers installing DCOS CLI's predecessor, the Mesos CLI and might not be accurate_
29 |
30 | {% mesos_video Mesos-Intro-Lecture-14 %}
31 |
--------------------------------------------------------------------------------
/advanced-course/installing-chronos.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 8 – Installing Chronos
4 |
5 | redirect_from:
6 | - /intro-course/ex8.html
7 | - /tutorials/run-chronos-on-mesos/
8 | ---
9 |
10 | Chronos is the cron of the Mesos ecosystem. Chronos is used to schedule jobs
11 | across the Mesos cluster and also manages dependencies between them in an
12 | intelligent way. This exercise shows you how to install Chronos and use it
13 | to schedule simple tasks and a sample task dependency chain.
14 |
15 | In this exercise:
16 |
17 | 1. Install Chronos.
18 | 2. Get Chronos running.
19 | 3. Create a simple periodic task by using the web UI.
20 | 4. Create a simple command with the REST API.
21 |
22 |
23 |
24 | Video Lecture
25 | -------------
26 |
27 | {% mesos_video Mesos-Intro-Lecture-8 %}
28 |
29 | Quick Reference
30 | ---------------
31 |
32 | Install Chronos using ``yum`` and then start it with ``service``:
33 |
34 | ```
35 | [node1]$ sudo yum -y install chronos
36 | [node1]$ sudo service chronos start
37 | ```
38 |
39 | Now you can go to the web UI for Chronos at http://192.168.33.10:4400/ and start a job. Create one called "sleeper" that sleeps for 10 seconds and goes off every 10 minutes.
40 |
41 |
42 | Further Study
43 | -------------
44 |
45 | * Stop Chronos and then install the ``/usr/bin/chronos`` command inside Marathon so that Marathon manages it the same way it manages Mesos DNS, ``SimpleHTTPServer``, and your demo application.
46 | * Create a Chronos job that kills the Mesos DNS process every 5 minutes so that Marathon can restart it. This task can be difficult, and is not recommended as a normal installation step. It is *only intended to teach you about the connection between all of the pieces installed so far*.
47 |
48 |
--------------------------------------------------------------------------------
/advanced-course/installing-zookeeper.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 2 – Installing ZooKeeper
4 |
5 | redirect_from:
6 | - /intro-course/ex2.html
7 | ---
8 |
9 | Apache Mesos uses ZooKeeper to operate. Apache Mesos also works with ``etcd`` but it is currently (as of
10 | Feb 2015) not recommended for production installations. ZooKeeper acts as the master election service in the Mesosphere architecture and
11 | stores state for the Mesos nodes.
12 |
13 | In this exercise:
14 |
15 | 1. Install the necessary ZooKeeper RPMs.
16 | 2. Initialize the ``zookeeper-server`` to use ID 1.
17 | 3. Start Zookeeper.
18 | 4. Test that Zookeeper works.
19 | 5. Shutdown and restart the ``zookeper-server`` down and validate that it works.
20 |
21 |
22 | Video Lecture
23 | -------------
24 |
25 | {% mesos_video Mesos-Intro-Lecture-2 %}
26 |
27 |
28 | Quick Reference
29 | ---------------
30 |
31 | You can start Zookeeper after completing exercise 1.
32 |
33 | Install Zookeeper and the Zookeeper server package by pointing to the RPM repository for ZooKeeper:
34 |
35 | ```
36 | [node1]$ sudo rpm -Uvh http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
37 | [node1]$ sudo yum -y install zookeeper zookeeper-server
38 | ```
39 |
40 | Initialize and start Zookeeper:
41 |
42 | ```
43 | [node1]$ sudo -u zookeeper zookeeper-server-initialize --myid=1
44 | [node1]$ sudo service zookeeper-server start
45 | ```
46 |
47 | Use the interactive shell to test your installation:
48 |
49 | ```
50 | [node1]$ /usr/lib/zookeeper/bin/zkCli.sh
51 | # sometimes at this point you get an error that java is missing. This means yum did NOT install java for...reasons. Start over.
52 | help
53 | create /test 1
54 | get /test
55 | set /test 2
56 | get /test
57 | delete /test
58 | quit
59 | ```
60 |
61 | Validate that you can stop and restart ZooKeeper:
62 |
63 | ```
64 | [node1]$ sudo service zookeeper-server stop
65 | [node1]$ sudo service zookeeper-server start
66 | ```
67 |
68 | Further Study
69 | -------------
70 |
71 | * [Read about ZooKeeper](http://zookeeper.apache.org/doc/r3.3.2/zookeeperAdmin.html) and learn how to work with it by using the shell.
72 | * Try taking ZooKeeper down and then attempt to use the shell again. This will show you some of the common error messages you get.
73 | * Find ZooKeeper in your process list, and find out where it is installed on the system.
74 |
75 |
76 |
--------------------------------------------------------------------------------
/advanced-course/introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Introduction
4 |
5 | redirect_from:
6 | - /intro-course/intro.html
7 | ---
8 |
9 | This course is designed to take you from having no knowledge of systems management by using Apache Mesos, to automatically building and deploying a complete cluster running Apache Mesos, Marathon, Mesos DNS, Chronos, Docker and Ansible. This course is designed so that even if you don't know anything about the tools, you'll become familiar by completing the examples and exercises. If you've always wanted to understand modern cloud infrastructure then this course is for you!
10 |
11 | This course assumes that you have basic knowledge of managing a Linux system and are proficient in Unix command line tools. A minimum of 8G of RAM is required on your system.
12 |
13 | How To Complete This Course
14 | ===========================
15 |
16 | The exercises have a consistent format that is designed to teach and act as a reference for further study. The format is:
17 |
18 | 1. An introduction that explains the exercise, its goals, and any prerequisites you may need.
19 | 2. A video lecture that teaches you the lesson, usually with a demonstration for you to watch
20 | and take notes about, or a presentation of information, or both.
21 | 3. A quick reference section that will have links mentioned in the videos, and list the commands
22 | used for you to refer to later. The commands are usually given in "shell friendly" format so you
23 | can copy and paste them when trying to replicate what the video did, although you should type them so
24 | you get used to working with the tools.
25 | 4. Homework for you to do before moving on. The homework should be short and related to the lecture, but
26 | it might involve more work depending on your skills and what's necessary for the exercise.
27 |
28 | To complete the course you simply start at Exercise 1 and do each exercise in
29 | order, watching the lectures and completing the homework. When you're done
30 | you'll have a very solid understanding of everything in Mesos and should be able to
31 | build your own deployments and applications with it.
32 |
33 | The exercises are designed to take between 15-60 minutes, and the entire course should take only a few days to complete.
34 |
35 | Getting Help
36 | ============
37 |
38 | To keep thing simple, please stick to the 7.1 version of CentOS being used in the exercises. While you may have a more preferred version of Linux, educational goals mean we have to standardize on one and use that to teach. After you complete the course you should be able to extrapolate this information to any version of Linux you prefer.
39 |
--------------------------------------------------------------------------------
/advanced-course/marathon-rest-api.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 6 – Marathon REST API
4 |
5 | redirect_from:
6 | - /intro-course/ex6.html
7 | ---
8 |
9 | The GUI is the primary way to work with Marathon, but it's also good to
10 | understand the underlying REST interface for Marathon. This exercise will show
11 | you advanced tricks you can do right from the command line using the Marathon
12 | REST API. You don't need to know any programming languages to complete this
13 | exercise, just a basic understanding of the ``curl`` command line HTTP tool.
14 |
15 | In this exercise you'll see how these REST calls map to the Marathon GUI and the Marathon
16 | command line tool.
17 |
18 | Video Lecture
19 | -------------
20 |
21 | {% mesos_video Mesos-Intro-Lecture-6 %}
22 |
23 |
24 | Quick Reference
25 | ---------------
26 |
27 | The Marathon REST API is documented at http://mesosphere.github.io/marathon/docs/rest-api.html and to demonstrate it you do the following:
28 |
29 | ```
30 | # get metrics on the running apps
31 | [node1]$ curl http://0.0.0.0:8080/metrics | python -m json.tool | less
32 |
33 | # look at the apps you have installed
34 | [node1]$ curl http://0.0.0.0:8080/v2/apps | python -m json.tool
35 |
36 | # look at a specific app, named test from Ex4 and Ex5
37 | [node1]$ curl http://0.0.0.0:8080/v2/apps/test | python -m json.tool
38 |
39 | # delete that app
40 | [node1]$ curl -X DELETE http://0.0.0.0:8080/v2/apps/test | python -m json.tool
41 |
42 | # show that the app is gone
43 | [node1]$ curl http://0.0.0.0:8080/v2/apps/test | python -m json.tool
44 | ```
45 |
46 | Confirm that these commands cause changes in the Marathon GUI as you run them. After that bring back the ``python`` test application using either the GUI, or for extra point, the API and ``curl``.
47 |
48 | Further Study
49 | -------------
50 |
51 | * Do the inverse of this video and make changes in the Marathon GUI which are shown in the REST API.
52 | * Use the REST API, ``curl`` and your text editor to ``DELETE`` and redeploy your application from the command line only.
53 |
54 |
--------------------------------------------------------------------------------
/advanced-course/scaling-to-two-nodes.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 11 – Scaling To Two Nodes
4 |
5 | redirect_from:
6 | - /intro-course/ex11.html
7 | ---
8 |
9 | After you have the ``mesos-slave`` running on ``node2``, you can use the Marathon GUI to expand the ``test`` Python web server out to ``node2`` and ``node1``. This exercise is entirely video based.
10 |
11 | In this exercise:
12 |
13 | 1. Use the Marathon GUI to scale up to 4 nodes.
14 | 2. Observe how ``node2`` now has the ``test`` application running in the Mesos GUI.
15 |
16 | Video Lecture
17 | -------------
18 |
19 | {% mesos_video Mesos-Intro-Lecture-11 %}
20 |
21 |
22 | Quick Reference
23 | ---------------
24 |
25 | 1. View the two Mesos nodes in the Marathon GUI and see how they are displayed.
26 | 2. Use the Marathon GUI to scale down your nodes to 0, then with the newly added ``node2`` active, scale it back up to 4 so you can see them be distributed across the little cluster.
27 | 3. Use mesos-dns to discover where they are and what their ports are.
28 |
29 |
30 | Further Study
31 | -------------
32 |
33 | * Use mesos-dns to find out where they are located.
34 | * Try launching your own commands to see how they work.
35 |
--------------------------------------------------------------------------------
/advanced-course/starting-marathon.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 4 – Starting Marathon
4 |
5 | redirect_from:
6 | - /intro-course/ex4.html
7 | - /tutorials/run-services-with-marathon/
8 | ---
9 |
10 | In Linux the init/systemd/upstart program manages all of the
11 | processes running on your system. The Mesosphere stack uses Marathon to manage the processes and services.
12 | Marathon is the technology that plays the role of ``init/systemd/upstart`` in the analogy of an operating system.
13 | Marathon provides both a simple GUI and an extensive REST API that you can work with if you need
14 | more capability.
15 |
16 | In this exercise:
17 |
18 | 1. Start Marathon.
19 | 2. Explore the Marathon GUI.
20 | 3. Install an app and start a simple Python web server by using Marathon.
21 | 4. Test that the Python web server is live.
22 |
23 | Video Lecture
24 | -------------
25 |
26 | {% mesos_video Mesos-Intro-Lecture-4 %}
27 |
28 | Quick Reference
29 | ---------------
30 |
31 | Start Marathon by using the ``service`` command:
32 |
33 | ```
34 | [node1]$ sudo service marathon start
35 | ```
36 |
37 | Go to ``http://192.168.33.10:8080/`` to view the Marathon GUI.
38 | From the GUI, install a new app that Marathon will run. In this example, we start by using the ``python -m SimpleHTTPServer`` app.:
39 |
40 |
41 | ```
42 | # view the python SimpleHTTPServer web server is running
43 | [node1]$ netstat -nlp | grep 8000
44 | # use curl to play with the server
45 | [node1]$ curl http://192.168.33.10:8000/
46 | ```
47 |
48 | Marathon and Mesos give you direct access to the ``stderr`` (standard error) and ``stdout`` (standard out) files for every process. You can use ``curl`` to view these files and see that they are the ``SimpleHTTPServer``'s logs, which you would normally see on your terminal when you start it:
49 |
50 | ```
51 | [node1]$ curl http://192.168.33.10:8000/stderr
52 | [node1]$ curl http://192.168.33.10:8000/stdout
53 | ```
54 |
55 | Further Study
56 | -------------
57 |
58 | * Try some other servers that you want to run. For example, ``Flask``, ``Ruby on Rails``, a database, or a chat server .
59 |
60 |
--------------------------------------------------------------------------------
/advanced-course/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | background-color: rgb(242, 242, 243);
3 | display: block;
4 | padding-top: 20px;
5 | position: relative;
6 | }
7 |
8 | .navbar-default .navbar-brand {
9 | color: #fff;
10 | font-weight: 200;
11 | letter-spacing: 1px;
12 | }
13 |
14 | .navbar-default .navbar-brand:hover {
15 | color: rgb(205, 205, 205);
16 | }
17 |
18 | .section {
19 | padding-bottom: 0px;
20 | padding-top: 0px;
21 | }
22 |
23 | .video-lecture-container {
24 | position:relative;
25 | width: 100%;
26 | height: 0px;
27 | padding-bottom: 56%; /* proportional scaling */
28 | padding-top: 50px; /* add constant */
29 | }
30 | .video-lecture-container .smart-player-embed-container-iframe {
31 | position: absolute;
32 | width: 100%;
33 | height: 100%;
34 | top: 0;
35 | }
36 |
37 | footer {
38 | margin-top: 25px;
39 | }
40 |
--------------------------------------------------------------------------------
/advanced-course/using-apache-mesos.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 3 – Using Apache Mesos
4 |
5 | redirect_from:
6 | - /intro-course/ex3.html
7 | ---
8 |
9 | Apache Mesos is the foundation of the Mesosphere technology stack and powers all of the communications and
10 | system management. Mesos uses a simple architecture to give you
11 | intelligent task distribution across a cluster of machines without worrying about where they are
12 | scheduled. In this module Mesos is used to run and manage services on a four
13 | node cluster. To get started you must set up the ``mesos-master`` on ``node1``.
14 |
15 | **Prerequisite** (see Exercise 1):
16 | Edit your /etc/hosts file to set node1 to the IP address 192.168.33.10.
17 |
18 | In this exercise:
19 |
20 | 1. Start the ``mesos-master`` and ``mesos-slave`` processes.
21 | 2. Test that the ``mesos-master`` and ``mesos-slave`` processes are working as expected.
22 | 3. Execute a sample command from the command line.
23 | 4. Observe the command's progress from both the command line and a web GUI.
24 |
25 |
26 | Video Lecture
27 | -------------
28 |
29 | {% mesos_video Mesos-Intro-Lecture-3 %}
30 |
31 |
32 | Quick Reference
33 | ---------------
34 |
35 | Start the mesos-master and mesos-slave processes:
36 |
37 | ```
38 | [node1]$ sudo service mesos-master start
39 | [node1]$ sudo service mesos-slave start
40 | [node1]$ sudo netstat -nlp | grep mesos
41 | ```
42 |
43 | Access the Mesos user interface with your browser at ``http://192.168.33.10:5050`` and confirm that the IP address shown in the user interface is ``192.168.33.10``. If not, start over by using ``vagrant destroy``.
44 |
45 |
46 | Test out mesos by using the ``mesos-execute`` command:
47 |
48 | ```
49 | [node1]$ export MASTER=$(mesos-resolve `cat /etc/mesos/zk` 2>/dev/null)
50 | [node1]$ mesos help
51 | [node1]$ mesos-execute --master=$MASTER --name="cluster-test" --command="sleep 40"
52 | ```
53 |
54 | With the ``mesos-execute`` command running, enter ``ctrl-z`` to suspend the command. You can see how it appears in the web UI and command line:
55 |
56 | ```
57 | # hit ctrl-z
58 | [node1]$ bg # this sends the process into the background
59 | [node1]$ mesos ps --master=$MASTER
60 | ```
61 |
62 | Further Study
63 | -------------
64 |
65 | * Try running a few other commands using ``mesos-execute``.
66 | * Find out what the commands listed in ``mesos help`` do and try to use a few of them.
67 |
68 |
--------------------------------------------------------------------------------
/advanced-course/using-the-marathon-gui.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Exercise 5 – Using the Marathon GUI
4 |
5 | redirect_from:
6 | - /intro-course/ex5.html
7 | ---
8 |
9 | You can use the Marathon GUI to configure and deploy your applications. In this exercise you will learn how the GUI works and
10 | how to configure and control a simple Python web service.
11 |
12 | This exercise is entirely video based. In this exercise:
13 |
14 | 1. Use the command line to kill the python web server.
15 | 2. Watch Marathon bring the Python web server back up.
16 | 3. Learn how to scale the app and halt the process.
17 | 4. Learn how to use ``$PORT`` to let Marathon assign random ports to your applications.
18 | 5. Scale the apps further than 1 node using randomly assigned ports.
19 |
20 |
21 | Video Lecture
22 | -------------
23 |
24 | {% mesos_video Mesos-Intro-Lecture-5 %}
25 |
26 |
27 | Quick Reference
28 | ---------------
29 |
30 | This exercise is entirely video based, and in the video we:
31 |
32 | 1. Kill the Python process from exercise 4.
33 | 2. Watch the Python process recover.
34 | 3. Suspend the Python process which brings it to 0.
35 | 4. Bring the process back up by going from 0 to 1 nodes.
36 | 5. Make a new Python process with different values for CPU and RAM. Make sure you can fit more than one process in the cluster according to the values you choose for CPU and RAM (recommended defaults: 0.1 CPU and 32MB RAM)
37 | 6. Scale the Python process back up by using the ``$PORT`` variable and then add more nodes.
38 | 7. Add 2 more nodes then show the ports working dynamically.
39 |
40 | Further Study
41 | -------------
42 |
43 | * Try out all of the things shown in the video on your application that was started in exercise 4.
44 | * With the ``$PORT`` variable you can have both the ``SimpleHTTPServer`` and your application live together. Try it out!
45 |
46 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mesosphere-backup/open-docs/9c58460b8aa216746ced5cef1cd8931b70f51c28/favicon.ico
--------------------------------------------------------------------------------
/frameworks/_development.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Framework Development
4 | redirect_to:
5 | - https://dcos.io/
6 | ---
7 |
8 | This document will provide the necessary details to develop a mesos framework.
9 |
--------------------------------------------------------------------------------
/frameworks/chronos.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Chronos redirect
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/frameworks/marathon.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Marathon redirect
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/getting-started/cloud/amazon/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Mesosphere on Amazon Web Services
4 |
5 | redirect_to:
6 | - http://mesosphere.com/amazon/
7 | ---
8 |
--------------------------------------------------------------------------------
/getting-started/cloud/google/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Mesosphere on Google Cloud Platform
4 |
5 | redirect_to:
6 | - http://mesosphere.com/google/
7 | ---
8 |
--------------------------------------------------------------------------------
/getting-started/cloud/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Mesosphere in the Cloud
4 |
5 | redirect_to:
6 | - https://dcos.io/
7 | ---
8 |
9 | This site is now deprecated. Please visit [dcos.io](https://dcos.io/) for the latest DC/OS community projects and documentation!
10 |
--------------------------------------------------------------------------------
/getting-started/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Getting Started
4 |
5 | redirect_to:
6 | - https://dcos.io/
7 | ---
8 |
9 | This site is now deprecated. Please visit [dcos.io](https://dcos.io/) for the latest DC/OS community projects and documentation!
10 |
11 | ## Mesos in the Cloud
12 |
13 | You can easily deploy Mesosphere DCOS into the cloud. Currently [Amazon Web Services](http://mesosphere.com/amazon) is supported but [Azure](https://mesosphere.com/azure/) and [Google](https://mesosphere.com/google/) support are coming soon!!
14 |
15 | ## DIY Mesos
16 |
17 | [Talk to Mesosphere](https://mesosphere.com/product/) about running DCOS Enterprise Edition on-premise!
18 |
19 | Installing an open source Mesos and Marathon cluster by hand is straightforward. The guides below will get you up and running a cluster in no time.
20 |
21 | + [Setting up a Mesos and Marathon Cluster](install)
22 | + [Tools](tools) - a collection of recipes for popular provisioning tools.
23 | + [Resources](resources) - writing your own Mesos framework? Some handy resources.
--------------------------------------------------------------------------------
/getting-started/resources.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Developer Resources
4 | redirect_to:
5 | - https://dcos.io/
6 | ---
7 |
8 | Mesos makes it easy to develop distributed systems by providing
9 | high-level building blocks like resource allocation and process
10 | monitoring. It has APIs for C/C++, Python, Go, Java, and other
11 | JVM languages. Here are some resources to help you get started with
12 | developing on Mesos.
13 |
14 | ### [Mesos Architecture](https://mesos.apache.org/documentation/latest/mesos-architecture)
15 |
16 | Provides an overview of Mesos concepts.
17 |
18 | ### [C++ Framework Development Guide](https://mesos.apache.org/documentation/latest/app-framework-development-guide/)
19 |
20 | Get started with writing Mesos applications in C++.
21 |
22 | ### [Go Bindings and Examples](https://github.com/mesosphere/mesos-go)
23 |
24 | Go language bindings for Apache Mesos, along with an example scheduler and executor.
25 |
26 | ### [Mesos Framework giter8 Template](https://github.com/mesosphere/scala-sbt-mesos-framework.g8)
27 |
28 | This is a giter8 template. The result of applying this template is a bare-bones Apache Mesos framework in Scala using SBT for builds and Vagrant for testing on a singleton cluster.
29 |
30 | ### [Mesos Hello World in Scala](https://gist.github.com/guenter/7471695)
31 |
32 | A simple Mesos "Hello World": downloads and starts a web server on every node in the cluster.
33 |
34 |
35 |
--------------------------------------------------------------------------------
/google6dc7450c38e56aed.html:
--------------------------------------------------------------------------------
1 | google-site-verification: google6dc7450c38e56aed.html
--------------------------------------------------------------------------------
/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Overview
4 |
5 | redirect_to:
6 | - https://dcos.io/
7 | ---
8 |
9 | This site is now deprecated. Please visit [dcos.io](https://dcos.io/) for the latest DC/OS community projects and documentation!
10 |
11 | Welcome to the Mesosphere Community Documentation website! This site contains documentation and tutorials for the community projects supported by Mesosphere, including [Apache Mesos](http://mesos.apache.org/), [Marathon](https://github.com/mesosphere/marathon) and [Chronos](https://github.com/mesos/chronos).
12 |
13 | This site also contains [a listing of Apache Mesos packages by version](/downloads/mesos). These are also available through your distribution's package manager ([setup instructions](https://mesosphere.com/downloads/)).
14 |
15 | For product documentation related to [Mesosphere's DCOS](https://mesosphere.com/learn/), please see the [Mesosphere documentation](http://docs.mesosphere.com).
16 |
17 | ## Getting Started
18 |
19 | The best way to start learning about Mesos and the other open source components that make up the Mesosphere DCOS is to take our extensive [Advanced Mesos Course](/advanced-course/) course which teaches you everything you need to run Mesosphere's software. This course consists of 20 exercises with video, quick reference commands, further study, and online live help comments. The course takes you from nothing to running a four node cluster running Mesos, Marathon, Chronos, all built automatically with Ansible. Take it at your own pace, and if you have any questions simply ask in the comments and we'll help you.
20 |
21 | ## Contributing
22 |
23 | This documentation is open source. Community contributions to the open docs are heartily welcomed! Please see the [repository's README on GitHub](https://github.com/mesosphere/open-docs) for more information.
24 |
25 | ## Support and Feedback
26 |
27 | Problems or questions related to this documentation should be [created as a new GitHub issue](https://github.com/mesosphere/open-docs/issues/new) or [asked on StackOverflow](http://ask.mesosphere.com). If you are able to fix the issue yourself, please consider [submitting a pull request](https://github.com/mesosphere/open-docs#2-submit-a-pull-request).
28 |
29 | Support information specific to the Mesosphere DCOS can be found at the [Support and Feedback page](https://docs.mesosphere.com/support/).
30 |
--------------------------------------------------------------------------------
/reference/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Reference
4 |
5 | redirect_to:
6 | - https://dcos.io/
7 | ---
8 |
9 | This site is now deprecated. Please visit [dcos.io](https://dcos.io/) for the latest DC/OS community projects and documentation!
10 |
11 |
12 | ### Administration
13 |
14 | * [Mesos Master Configuration](mesos-master)
15 | * [Mesos Slave Configuration](mesos-slave)
16 | * [Mesosphere Packages](packages)
17 |
18 |
19 | ### Misc
20 |
21 | * [Generating ssh Keys](generate-ssh-key)
22 |
23 |
24 |
25 | ### Glossary
26 |
27 | * [Glossary](glossary)
28 |
--------------------------------------------------------------------------------
/rm-old-files.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | for img in $( find _assets/img -name "*.png" -or -name "*.jpg" -or -name "*.gif" ); do
4 | img_file=`basename $img`
5 | ag --markdown --html --yaml --css --less "/$img_file" .
6 | total=$(expr $?)
7 | ag --markdown --html --yaml --css --less "asset_path $img_file" .
8 | total=$(expr $total + $?)
9 | ag --markdown --html --yaml --css --less "\"$img_file" .
10 | total=$(expr $total + $?)
11 | if [ $total -eq "3" ]; then
12 | echo "Found an image: $img_file"
13 | git rm $img
14 | fi
15 | done
16 |
17 |
--------------------------------------------------------------------------------
/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow: /jobs/challenges/
3 | Disallow: /
4 | Disallow: /advanced-course/
5 |
--------------------------------------------------------------------------------
/tutorials/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: doc
3 | title: Tutorials
4 |
5 | redirect_from:
6 | - /tutorials/etl-pipelines-with-chronos-and-hadoop/
7 | - /tutorials/mesosphere-on-a-single-coreos-instance/
8 | - /learn/run-play-on-mesos/
9 | - /tutorials/run-play-on-mesos/
10 | - /learn/run-spark-on-mesos/
11 | - /tutorials/run-spark-on-mesos/
12 | - /learn/run-storm-on-mesos/
13 | - /tutorials/run-storm-on-mesos/
14 |
15 | redirect_to:
16 | - https://dcos.io/
17 | ---
18 |
19 | This site is now deprecated. Please visit [dcos.io](https://dcos.io/) for the latest DC/OS community projects and documentation!
20 |
21 |
22 |
23 |
24 | {% for row in site.data.tutorials %}
25 | {% assign platform=row[1] %}
26 | {% unless platform.hide == true %}
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | {{ platform.name }}
35 |
36 | {{ platform.blurb }}
37 |
38 |
39 |
40 | {% for entry in platform.tutorials %}
41 | {% assign tutorial=entry[1] %}
42 | {% assign tutorial_page=nil %}
43 | {% assign url=tutorial.path %}
44 | {% for p in site.pages %}
45 | {% if tutorial.path == p.path %}
46 | {% assign url=p.url %}
47 | {% endif %}
48 | {% endfor %}
49 |
50 | -
51 |
52 |
53 | {{ tutorial.title }}
54 |
55 |
59 | {{ tutorial.blurb }}
60 |
61 |
62 | {% endfor %}
63 |
64 |
65 | {% endunless %}
66 | {% endfor %}
67 |
68 |
69 |
--------------------------------------------------------------------------------