Browse code

Merge branch 'master' of https://github.com/vmware/photon

archive authored on 2018/10/08 23:30:25
Showing 76 changed files
... ...
@@ -1,3 +1,5 @@
1
+# Photon OS Frequently Asked Questions
2
+
1 3
 * [What is Photon OS?](#q-what-is-photon-os)
2 4
 * [How do I get started with Photon OS?](#q-how-do-i-get-started-with-photon-os)
3 5
 * [Can I upgrade my existing Photon OS 1.0 VMs?](#q-can-i-upgrade-my-existing-photon-os-10-vms)
... ...
@@ -33,11 +35,11 @@ A. Photon OS™ is an open source Linux container host optimized for cloud-nativ
33 33
 
34 34
 ## Q. How do I get started with Photon OS?
35 35
 A. Start by deciding your target platform. Photon OS 2.0 has been certified in public cloud environments - Microsoft Azure (new), Google Compute Engine (GCE), Amazon Elastic Compute Cloud (EC2) - as well as on VMware vSphere, VMware Fusion, and VMware Workstation.
36
-Next, download the latest binary distributions for your target platform. The binaries are hosted on [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/). For download instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
37
-Finally, go to the installation instructions for your target platform, which are listed here: [https://github.com/vmware/photon/wiki](https://github.com/vmware/photon/wiki).
36
+Next, download the latest binary distributions for your target platform. The binaries are hosted on [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/). For download instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
37
+Finally, go to the installation instructions for your target platform, which are listed here:  [Quick Start](photon-admin-guide.md#getting-started-with-photon-os-20).
38 38
 
39 39
 ## Q. Can I upgrade my existing Photon OS 1.0 VMs?
40
-A. Yes, there is an in-place upgrade path for Photon OS 1.0 implementations. You simply download an upgrade package, run a script, and reboot the VM. Refer to the instructions in [Upgrading to Photon OS 2.0](https://github.com/vmware/photon/wiki/Upgrading-to-Photon-OS-2.0).
40
+A. Yes, there is an in-place upgrade path for Photon OS 1.0 implementations. You simply download an upgrade package, run a script, and reboot the VM. Refer to the instructions in [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md).
41 41
 
42 42
 ## Q. What kind of support comes with Photon OS?
43 43
 A. Photon OS is supported through community efforts and direct developer engagement in the communities. Potential users of Photon OS should start with the [Photon microsite](http://vmware.com/photon).
44 44
deleted file mode 100644
... ...
@@ -1,29 +0,0 @@
1
-![Photon](https://cloud.githubusercontent.com/assets/11306358/9800286/cb4c9eb6-57d1-11e5-916c-6eba8e40fa99.png)
2
-# Welcome to the Photon OS Wiki
3
-
4
-This wiki serves as an unofficial supplement to the documentation that is published in the project .md files. 
5
-
6
-### Photon OS 2.0 GA Available!
7
-
8
-Photon OS 2.0 introduces new security and OS management capabilities, along with new and updated packages for cloud-native applications and VMware appliances. To download the distribution images, go to [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS). To learn more, see [What is New in Photon OS 2.0](https://github.com/vmware/photon/wiki/What-is-New-in-Photon-OS-2.0).
9
-
10
-# Table of Contents
11
-
12
-1. [Frequently Asked Questions](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions)
13
-2. Getting Started Guides
14
-    * [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS)
15
-    * [Running Photon OS on vSphere](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-vSphere)
16
-    * [Running Photon OS on Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion)
17
-    * [Running Photon OS on Workstation](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Workstation)
18
-    * [Running Photon OS on AWS EC2](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute)
19
-    * [Running Photon OS on Microsoft Azure](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Microsoft-Azure)
20
-    * [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine)
21
-
22
-3. Administration Guides
23
-    * [Photon OS Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md)
24
-    * [How to use Photon Management Daemon](https://github.com/vmware/photon/blob/master/docs/pmd-cli.md)
25
-
26
-4. How-To Guides
27
-    * [Install and Configure a Swarm Cluster with DNS Service on Photon OS](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS)
28
-    * [Install and Configure a Production Ready Mesos Cluster on Photon OS](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS)
29
- 
... ...
@@ -1,14 +1,14 @@
1
-**Installing the Lightwave Client on a Photon Image and Joining the Client to a Domain**
1
+# Installing the Lightwave Client on a Photon Image and Joining the Client to a Domain
2 2
 
3 3
 After you have set up a Lightwave domain controller, you can join Photon clients to that domain. You install the Lightwave client first. After the client is installed, you join the client to the domain.
4 4
 
5
-**Prerequisites**
5
+## Prerequisites
6 6
 
7 7
 - Prepare a Photon OS client for the Lightwave client installation.
8 8
 - Verify that the hostname of the client can be resolved.
9 9
 - Verify that you have 184 MB free for the Lightwave client installation.
10 10
 
11
-**Procedure**
11
+## Procedure
12 12
 
13 13
 1. Log in to your Photon OS client over SSH.
14 14
 2. Install the Lightwave client by running the following command. 
... ...
@@ -1,14 +1,14 @@
1
-**Installing the Lightwave Server and Configuring It as a Domain Controller on a Photon Image**
1
+# Installing the Lightwave Server and Configuring It as a Domain Controller on a Photon Image
2 2
 
3 3
 You can configure Lightwave server as domain controller on a Photon client. You install the Lightwave server first. After the server is installed, you configure a new domain. 
4 4
 
5
-**Prerequisites**
5
+## Prerequisites
6 6
 
7 7
 - Prepare a Photon OS client for the Lightwave server installation.
8 8
 - Verify that the hostname of the client can be resolved.
9 9
 - Verify that you have 500 MB free for the Lightwave server installation.
10 10
 
11
-**Procedure**
11
+## Procedure
12 12
 
13 13
 1. Log in to your Photon OS client over SSH as an administrator.
14 14
 2. Install the Lightwave server by running the following command. 
... ...
@@ -2,10 +2,10 @@
2 2
 
3 3
 Project Lightwave is an open-sourced project that provides enterprise-grade identity and access management services, and can be used to solve key security, governance, and compliance challenges for a variety of use cases within the enterprise. Through integration between Photon OS and Project Lightwave, organizations can enforce security and governance on container workloads, for example, by ensuring only authorized containers are run on authorized hosts, by authorized users. For more details about Lightwave, see the [project Lightwave page on GitHub](https://github.com/vmware/lightwave).
4 4
 
5
-**Procedure**
5
+## Procedure
6 6
 
7
-1. [Installing the Lightwave Server and Configuring It as a Domain Controller on a Photon Image](Installing-Lightwave-Server-and-Setting-Up-a-Domain)
8
-2. [Installing the Lightwave Client on a Photon Image and Joining the Client to a Domain](Installing-Lightwave-Client-and-Joining-a-Domain)
9
-3. [Installing the Photon Management Daemon on a Lightwave Client](Installing-the-Photon-Management-Daemon-on-a-Lightwave-Client)
10
-4. [Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed](Remotely-Upgrade-a-Photon-OS-Machine-With-Lightwave-Client-and-Photon-Management-Daemon-Installed)
11
-5. [Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed](Remotely-Upgrade-Photon-OS-Machine-With-Lightwave-Client-and-Photon-Management-Daemon-Installed)
7
+1. [Installing the Lightwave Server and Configuring It as a Domain Controller on a Photon Image](Installing-Lightwave-Server-and-Setting-Up-a-Domain.md)
8
+2. [Installing the Lightwave Client on a Photon Image and Joining the Client to a Domain](Installing-Lightwave-Client-and-Joining-a-Domain.md)
9
+3. [Installing the Photon Management Daemon on a Lightwave Client](Installing-the-Photon-Management-Daemon-on-a-Lightwave-Client.md)
10
+4. [Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed](Remotely-Upgrade-a-Photon-OS-Machine-With-Lightwave-Client-and-Photon-Management-Daemon-Installed.md)
11
+5. [Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed](Remotely-Upgrade-Photon-OS-Machine-With-Lightwave-Client-and-Photon-Management-Daemon-Installed.md)
... ...
@@ -1,14 +1,14 @@
1
-**Installing the Photon Management Daemon on a Lightwave Client**
1
+# Installing the Photon Management Daemon on a Lightwave Client 
2 2
 
3 3
 After you have installed and configured a domain on Lightwave, and joined a client to the domain, you can install the Photon Management Daemon on that client so that you can remotely manage it.
4 4
 
5
-**Prerequisites**
5
+## Prerequisites
6 6
 
7 7
 - Have an installed Lightwave server with configured domain controller on it.
8 8
 - Have an installed Lightwave client that is joined to the domain.
9 9
 - Verify that you have 100 MB free for the daemon installation on the client.
10 10
 
11
-**Procedure**
11
+## Procedure
12 12
 
13 13
 1. Log in to a machine with installed Lightwave client over SSH as an administrator.
14 14
 2. Install the Photon Management Daemon.
... ...
@@ -1,3 +1,5 @@
1
+# Photon OS Administration Guide and Other Documentation
2
+
1 3
 The Photon OS Administration Guide covers the basics of managing packages, controlling services with systemd, setting up networking, initializing Photon OS with cloud-init, running Docker containers, and working with other technologies, such as Kubernetes. The guide also includes a section to get you started using Photon OS quickly and easily. The guide is at the following URL: 
2 4
 
3 5
 https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md
... ...
@@ -1,11 +1,13 @@
1
-### 1.1 What is OSTree? How about RPM-OSTree?
1
+# Introduction
2
+
3
+## 1.1 What is OSTree? How about RPM-OSTree?
2 4
 
3 5
 OSTree is a tool to manage bootable, immutable, versioned filesystem trees. Unlike traditional package managers like rpm or dpkg that know how to install, uninstall, configure packages, OSTree has no knowledge of the relationship between files. But when you add rpm capabilities on top of OSTree, it becomes RPM-OSTree, meaning a filetree replication system that is also package-aware.   
4 6
 The idea behind it is to use a client / server architecture to keep your Linux installed machines (physical or VM) in sync with the latest bits, in a predictable and reliable manner. To achieve that, OSTree uses a git-like repository that records the changes to any file and replicate them to any subscriber.  
5 7
 A system administrator or an image builder developer takes a base Linux image, prepares the packages and other configuration on a server box, executes a command to compose a filetree that the host machines will download and then incrementally upgrade whenever a new change has been committed.
6 8
 You may read more about OSTree [here](https://wiki.gnome.org/Projects/OSTree).
7 9
 
8
-### 1.2 Why use RPM-OSTree in Photon?
10
+## 1.2 Why use RPM-OSTree in Photon?
9 11
 There are several important benefits:
10 12
 * Reliable, efficient: The filetree replication is simple, reliable and efficient. It will only transfer deltas over the network. If you have deployed two almost identical bootable images on same box (differing just by several files), it will not take twice the space. The new tree will have a set of hardlinks to the old tree and only the different files will have a separate copy stored to disk.
11 13
 * Atomic: the filetree replication is atomic. At the end of a deployment, you are either booting from one deployment, or the other. There is no "partial deployed bootable image". If anything bad happens during replication or deployment- power loss, network failure, your machine boots from the old image. There is even a tool option to cleanup old deployed (successfully or not) image.
... ...
@@ -17,36 +19,34 @@ As drawbacks, I would mention:
17 17
 * People not used with "read only" file systems will be disappointed that they could no longer use RPM, yum, tdnf to install whatever they want. Think of this as an "enterprise policy". They may circumvent this by customizing the target directory to a writable directory like /var or using rpm to install packages and record them using a new RPM repository in a writable place.
18 18
 * Administrators need to be aware about the directories re-mapping specific to OSTree and plan accordingly.
19 19
 
20
-### 1.3 Photon with RPM-OSTree installation profiles
20
+## 1.3 Photon with RPM-OSTree installation profiles
21 21
 Photon takes advantage of RPM-OSTree and offers several installation choices:
22 22
 * Photon RPM-OSTree server - used to compose customized Photon OS installations and to prepare updates. I will call it for short 'server'.
23 23
 * Photon RPM-OSTree host connected to a default online server repository via http or https, maintained by VMware Photon OS team, where future updates will be published. This will create a minimal installation profile, but with the option to self-upgrade. I will call it for short 'default host'.
24 24
 * Photon RPM-OSTree host connected to a custom server repository. It requires a Photon RPM-OSTree Server installed in advance. I will call it for short 'custom host'.
25 25
 
26
-### 1.4 Terminology
26
+## 1.4 Terminology
27 27
 I use the term "OSTree" (starting with capitals) throughout this document, when I refer to the general use of this technology, the format of the repository or replication protocol. I use "RPM-OSTree" to emphasize the layer that adds RedHat Package Manager compatibility on both ends - at server and at host. However, since Photon OS is an RPM-based Linux, there are places in the documentation and even in the installer menus where "OSTree" may be used instead of "RPM-OSTree" when the distinction is not obvious or doesn't matter in that context.
28 28
 When "ostree" and "rpm-ostree" (in small letters) are encountered, they refer to the usage of the specific Unix commands.   
29 29
 
30 30
 Finally, "Photon RPM-OSTree" is the application or implementation of RPM-OStree system into Photon OS, materialized into two options: Photon Server and Photon Host (or client). "Server" or "Host" may be used with or without the "Photon" and/or "RPM-OStree" qualifier, but it means the same thing. 
31 31
 
32
-### 1.5 Sample code
33
-Codes samples used throughout the book are small commands that can be typed at shell command prompt and do not require downloading additional files. As an alternative, one can remote via ssh, so cut & paste sample code from outside sources or copy files via scp will work. See the Photon Administration guide to learn [how to enable ssh](https://github.com/vmware/photon/blob/1.0/docs/photon-admin-guide.md#permitting-root-login-with-ssh). 
32
+## 1.5 Sample code
33
+Codes samples used throughout the book are small commands that can be typed at shell command prompt and do not require downloading additional files. As an alternative, one can remote via ssh, so cut & paste sample code from outside sources or copy files via scp will work. See the Photon Administration guide to learn [how to enable ssh](photon-admin-guide.md#permitting-root-login-with-ssh). 
34 34
 The samples assume that the following VMs have been installed - see the steps in the next chapters:
35 35
 * A default host VM named **photon-host-def**.
36 36
 * Two server VMs named **photon-srv1** and **photon-srv2**.
37 37
 * Two custom host VMs named **photon-host-cus1** and **photon-host-cus2**, connected each to the corresponding server during install.
38 38
 
39
-### 1.6 How to read this book
39
+## 1.6 How to read this book
40 40
 I've tried to structure this book to be used both as a sequential read and as a reference documentation.   
41 41
 If you are just interested in deploying a host system and keeping it up to date, then read chapters 2 and 5.   
42 42
 If you want to install your own server and experiment with customizing packages for your Photon hosts, then read chapters 6 to 9. There are references to the concepts discussed throughout the book, if you need to understand them better.  
43 43
 However, if you want to read page by page, information is presented from simple to complex, although as with any technical book, we occasionally run into the chicken and egg problem - forward references to concepts that have yet to be explained later. In other cases, concepts are introduced and presented in great detail that may be seem hard to follow at first, but I promise they will make sense in the later pages when you get to use them.
44 44
 
45
-### 1.7 Difference between versions
45
+## 1.7 Difference between versions
46 46
 This book has been written when Photon 1.0 was released, so all the information presented apply directly to Photon 1.0 and also to Photon 1.0 Revision 2 (in short Photon 1.0 Rev2 or Photon 1.0r, as some people refer to it as Photon 1.0 Refresh). This release is relevant to OSTree, because of ISO including an updated RPM-OSTree repository containing upgraded packages, as well as matching updated online repo that plays well into the upgrade story. Other than that, differences are minimal.  
47 47
 
48
-The guide has been updated significantly for Photon OS 2.0. Information of what's different is scattered through chapters 2, 6, 7, 8. [[Chapter 12|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0]] is dedicated to the topic.    
48
+The guide has been updated significantly for Photon OS 2.0. Information of what's different is scattered through chapters 2, 6, 7, 8. [Install or rebase to Photon OS 2.0](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md) is dedicated to the topic.    
49 49
 
50 50
 OSTree technology is evolving too and rather than pointing out at what package version some feature has been introduced or changed, the focus is on the ostree and rpm-ostree package versions included with the Photon OS major releases.
51
-
52
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-Preface]] | [[ Next page >|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]]
53 51
\ No newline at end of file
... ...
@@ -1,6 +1,8 @@
1
+# Remotes
2
+
1 3
 In Chapter 3 we talked about the Refspec that contains a **photon:** prefix, that is the name of a remote. When a Photon host is installed, a remote is added - which contains the URL for an OSTree repository that is the origin of the commits we are going to pull from and deploy filetrees, in our case the Photon RPM-OSTree server we installed the host from. This remote is named **photon**, which may be confusing, because it's also the OS name and part of the Refspec (branch) path.
2 4
 
3
-### 10.1 Listing remotes
5
+## 10.1 Listing remotes
4 6
 A host repo can be configured to switch between multiple remotes to pull from, however only one remote is the "active" one at a time. We can list the remotes created so far, which brings back the expected result.
5 7
 ```
6 8
 root@photon-host-def [ ~ ]# ostree remote list
... ...
@@ -29,13 +31,13 @@ root@photon-host-cus [ ~ ]# ostree remote show-url photon
29 29
 http://10.118.101.168
30 30
 ```
31 31
 
32
-### 10.2 GPG signature verification
32
+## 10.2 GPG signature verification
33 33
 You may wonder what is the purpose of ```gpg-verify=false``` in the config file, associated with the specific remote. This will instruct any host update to skip the signing verification for the updates that come from server, resulted from tree composed locally at the server, as they are not signed. Without this, host updating will fail.  
34 34
 
35 35
 There is a whole chapter about signing, importing keys and so on that I will not get into, but the idea is that signing adds an extra layer of security, by validating that everything you download comes from the trusted publisher and has not been altered. That is the case for all Photon OS artifacts downloaded from VMware official site. All OVAs and packages, either from the online RPMS repositories or included in the ISO file - are signed by VMware. We've seen a similar setting ```gpgcheck=1``` in the RPMS repo configuration files that tdnf uses to validate or not the signature for all packages downloaded to be installed.
36 36
 
37 37
 
38
-### 10.3 Switching repositories
38
+## 10.3 Switching repositories
39 39
 Since mapping name/url is stored in the repo's config file, in principle you can re-assign a different URL, connecting the host to a different server. The next upgrade will get the latest commit chain from the new server.   
40 40
 If we edit photon-host-def's repo config and replace the bintray URL by photon-srv1's IP address, all original packages in the original 1.0_minimal version will be preserved, but any new package change (addition, removal, upgrade) added after that (in 1.0_minimal.1, 1.0_minimal.2) will be reverted and all new commits from photon-srv1 (that may have same version) will be applied. This is because the two repos are identical copies, so they have the same original commit ID as a common ancestor, but they diverge from there.  
41 41
 This may create confusion and it's one of the reasons I insisted on creating your own scheme of versioning.
... ...
@@ -43,9 +45,9 @@ This may create confusion and it's one of the reasons I insisted on creating you
43 43
 If the old and new repo have nothing in common (no common ancestor commit), this will undo even the original commit, so all commits from the new tree will be applied.  
44 44
 A better solution would be to add a new remote that will identify where the commits come from.
45 45
 
46
-### 10.4 Adding and removing remotes
46
+## 10.4 Adding and removing remotes
47 47
 
48
-A cleaner way to switch repositories is to add remotes that point to different servers. Let's add another server that we will refer to as **photon2**, along with (optional) the refspecs for branches that it provides (we will see later that in the newer OSTree versions, we don't need to know the branch names, they could be [[queried at run-time|Photon-RPM-OSTree:-10-Remotes#105-listing-available-branches]]). The 'minimal' and 'full' branch ref names containing '2.0' suggest this may be a Photon OS 2.0 RPM-OSTree server. 
48
+A cleaner way to switch repositories is to add remotes that point to different servers. Let's add another server that we will refer to as **photon2**, along with (optional) the refspecs for branches that it provides (we will see later that in the newer OSTree versions, we don't need to know the branch names, they could be [queried at run-time](Photon-RPM-OSTree-10-Remotes.md#105-listing-available-branches)). The 'minimal' and 'full' branch ref names containing '2.0' suggest this may be a Photon OS 2.0 RPM-OSTree server. 
49 49
 ```
50 50
 root@photon-host-cus [ ~ ]# ostree remote add --repo=/ostree/repo -v --no-gpg-verify photon2 http://10.118.101.86 photon/2.0/x86_64/minimal photon/2.0/x86_64/full
51 51
 root@photon-host-cus [ ~ ]# ostree remote list
... ...
@@ -70,10 +72,10 @@ root@photon-host-cus [ ~ ]# ostree remote list
70 70
 photon
71 71
 ```
72 72
 
73
-### 10.5 List available branches
73
+## 10.5 List available branches
74 74
 If a host has been deployed from a specific branch and would like to switch to a different one, maybe from a different server, how would it know what branches are available? In git, you would run ```git remote show origin``` or ```git remote -a``` (although last command would not show all branches, unless you ran ```git fetch``` first).  
75 75
 
76
-Fortunately, in Photon OS 2.0 and higher, the hosts are able to query the server, if summary metadata has been generated, as we've seen in [[8.5|Photon-RPM-OSTree:-8-File-oriented-server-operations#85-creating-summary-metadata]].  This command lists all branches available for remote **photon2**.
76
+Fortunately, in Photon OS 2.0 and higher, the hosts are able to query the server, if summary metadata has been generated, as we've seen in [8.5](Photon-RPM-OSTree:-8-File-oriented-server-operations.md#85-creating-summary-metadata).  This command lists all branches available for remote **photon2**.
77 77
 
78 78
 ```
79 79
 root@photon-host-cus [ ~ ]# ostree remote refs photon2 
... ...
@@ -85,5 +87,3 @@ photon2:photon/2.0/x86_64/minimal
85 85
 ###10.6 Switching branches (rebasing)
86 86
 
87 87
 
88
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-9-Package-oriented-server-operations]] | [[Next page >|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images]]
89
-  
... ...
@@ -1,7 +1,9 @@
1
+# Running container applications between bootable images
2
+
1 3
 In this chapter, we want to test a docker application and make sure that all the settings and downloads done in one bootable filetree are going to be saved into writable folders and be available in the other image, in other words after reboot from the other image, everything is available exactly the same way.   
2 4
 We are going to do this twice: first, to verify an existing bootable image installed in parallel and then create a new one.
3 5
 
4
-### 11.1 Downloading a docker container appliance
6
+## 11.1 Downloading a docker container appliance
5 7
 Photon OS comes with docker package installed and configured, but we expect that the docker daemon is inactive (not started). Configuration file /usr/lib/systemd/system/docker.service is read-only (remember /usr is bound as read-only). 
6 8
 ```
7 9
 root@sample-host-def [ ~ ]# systemctl status docker
... ...
@@ -128,7 +130,7 @@ CONTAINER ID    IMAGE   COMMAND       CREATED         STATUS
128 128
 d07ebca78051    ubuntu  "/bin/bash"   16 minutes ago  Up 5 seconds                        kickass_hodgkin
129 129
 ```
130 130
 
131
-### 11.2 Rebooting into an existing image
131
+## 11.2 Rebooting into an existing image
132 132
 Now let's reboot the machine and select the other image. First, we'll verify that the docker daemon is automaically started.
133 133
 ```
134 134
 root@photon-host-cus1 [ ~ ]# systemctl status docker
... ...
@@ -154,7 +156,7 @@ Ubuntu file
154 154
 root@57dcac5d0490:/# echo "booted into existing image" >> /home/myfile
155 155
 root@57dcac5d0490:/# exit
156 156
 ```
157
-### 11.3 Reboot into a newly created image
157
+## 11.3 Reboot into a newly created image
158 158
 Let's upgrade and replace the .0 image by a .3 build that contains git and also perl_YAML (because it is a dependency of git).
159 159
 ```
160 160
 root@photon-host-cus1 [ ~ ]# rpm-ostree status
... ...
@@ -207,5 +209,3 @@ Ubuntu file
207 207
 booted into existing image
208 208
 root@57dcac5d0490:/# echo "booted into new image" >> /home/myfile
209 209
 ```
210
-
211
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon RPM-OSTree:-10-Remotes]] | [[ Next page >|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0]]
212 210
\ No newline at end of file
... ...
@@ -1,20 +1,22 @@
1
+# Installing a host against default server repository
2
+
1 3
 RPM-OSTree Host default server repo installation option in Photon 1.0 or 1.0 Revision 2 will setup a profile similar to Photon Minimal, with the added benefit of being able to self-upgrade.  
2 4
 Photon OS 2.0 does not offer a 'default host' installation. See chapter 7 and 12 for other options. 
3 5
 
4
-### 2.1 Who is this for?  
6
+## 2.1 Who is this for?  
5 7
 The RPM-OSTree 'default host' is the easiest way to deploy a Photon RPM-OSTree host from ISO/cdrom, without the need to deploy and maintain an RPM-OSTree server. It is targeted at the user who relies on VMware Photon OS team to keep his or her system up-to-date, configured to get its updates from the official Photon 1.0 OSTree repository.
6 8
 
7 9
 This is also the fastest way to install a host (18 seconds on my Mac with SSD after all UI choices have been entered by user), as we've included in the ISO/cdrom an identical copy of the Photon 1.0 "starter" RPM-OSTree repository that is published online by VMware Photon OS team. So rather than pulling from the online repository, the installer pulls the repo from cdrom, which saves bandwidth and also reduces to zero the chances of failing due to a networking problem. After successful installation, any updates are going to be pulled from the official online repository, when Photon OS team will make them available.    
8 10
 
9 11
 Note: It is also possible to install an RPM-OSTree host against the official online repo via PXE boot, without the benefit of fast, local pull from cdrom. This will be covered in the PXE boot/kickstart chapter, as it requires additional configuration.
10 12
 
11
-### 2.2 Installing the ISO, step by step
12
-User will first download [[Photon 1.0 ISO file|https://bintray.com/artifact/download/vmware/photon/photon-1.0-13c08b6.iso]] or the newer [[Photon 1.0 Rev2 ISO file|https://bintray.com/artifact/download/vmware/photon/photon-1.0-62c543d.iso]] that contains the installer, which is able to deploy any of the supported Photon installation profiles.
13
+## 2.2 Installing the ISO, step by step
14
+User will first download [Photon 1.0 ISO file](https://bintray.com/artifact/download/vmware/photon/photon-1.0-13c08b6.iso) or the newer [Photon 1.0 Rev2 ISO file](https://bintray.com/artifact/download/vmware/photon/photon-1.0-62c543d.iso) that contains the installer, which is able to deploy any of the supported Photon installation profiles.
13 15
 
14 16
 There are some steps common to all Photon installation profiles, starting with adding a VM in VMware Fusion, Workstation or ESXi, selecting the OS family, then customizing for disk size, CPU, memory size, network interface etc. (or leaving the defaults) and selecting the ISO image as cdrom. The installer will launch, that will go through disk partitioning and accepting the license agreement screens, followed by selecting an installation profile.
15 17
 These steps are described at the page linked below, so I won't repeat them, just that instead of setting up a Photon Minimal profile, we will install a Photon OSTree host:   
16 18
 
17
-[[Running Project Photon on Fusion|Running-Project-Photon-on-Fusion]].  
19
+[Running Project Photon on Fusion](Running-Project-Photon-on-Fusion.md).  
18 20
 
19 21
 Select the **Photon OSTree Host** option.
20 22
 
... ...
@@ -31,8 +33,6 @@ When installation is over, the VM will reboot and will show in grub VMWare Photo
31 31
 
32 32
 ![PhotonHostFirstRebootGrub](https://cloud.githubusercontent.com/assets/13158414/14757877/155614ec-08ad-11e6-9e36-b43f77b6fb69.png)  
33 33
 
34
-Boot, login and you are ready to use it!  The next chapters are about experimenting first hand and understanding in detail how everything works. If you just want to learn how to [[upgrade your host|Photon-RPM-OSTree:-5-Host-updating-operations]] when new updates are available, skip to [[Chapter 5|Photon-RPM-OSTree:-5-Host-updating-operations]].
35
-
36
-Note: If you ran Photon 1.0 Rev2 installer rather than Photon 1.0, you may notice in grub **1.0_minimal.1** rather than **1.0_minimal**, hinting of an updated, newer version installed. This will be also explained in [[Chapter 5|Photon-RPM-OSTree:-5-Host-updating-operations]].  
34
+Boot, login and you are ready to use it!  The next chapters are about experimenting first hand and understanding in detail how everything works. If you just want to learn how to [upgrade your host](Photon-RPM-OSTree-5-Host-updating-operations.md) when new updates are available, skip to [Host updating operations](Photon-RPM-OSTree-5-Host-updating-operations.md).
37 35
 
38
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-1-Introduction#photon-with-rpm-ostree-installation-profiles]] | [[ Next page >|Photon-RPM-OStree:-3-Concepts-in-action]] 
39 36
\ No newline at end of file
37
+Note: If you ran Photon 1.0 Rev2 installer rather than Photon 1.0, you may notice in grub **1.0_minimal.1** rather than **1.0_minimal**, hinting of an updated, newer version installed. This will be also explained in [Host updating operations](Photon-RPM-OSTree-5-Host-updating-operations.md).  
40 38
deleted file mode 100644
... ...
@@ -1,256 +0,0 @@
1
-There are several ostree and rpm-ostree commands that list file or package data based on either the Commit ID, or Refspec. If Refspec is passed as a parameter, it's the same as passing the most recent commit ID (head) for that branch.
2
-
3
-### 4.1 Commit history
4
-For a host that is freshly installed, there is only one commit in the history for the only branch.
5
-```
6
-root@photon-host [ ~ ]# ostree log photon/1.0/x86_64/minimal
7
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
8
-Date:  2016-06-07 14:06:17 +0000
9
-Version: 1.0_minimal
10
-```
11
-This commit has no parent; if there was an older commit, it would have been listed too. We can get the same listing (either nicely formatted or raw variant data) by passing the Commit ID. Just the first several hex digits will suffice to identify the commit ID. We can either request to be displayed in a pretty format, or raw - the actual C struct.
12
-```
13
-root@photon-host [ ~ ]# ostree log 56ef
14
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
15
-Date:  2016-06-07 14:06:17 +0000
16
-Version: 1.0_minimal
17
-```
18
-```
19
-root@photon-host [ ~ ]# ostree log 56ef --raw
20
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
21
-({'version': <'1.0_minimal'>, 'rpmostree.inputhash': <'40ae75453cf7f00b163848676c4b5716511e7515b95fb7b9168004aa97f05dd9'>}, @ay [], @a(say) [], '', '', uint64 1465308377, [byte 0x3c, 0x6b, 0x71, 0x44, 0x07, 0xd0, 0x5e, 0xd5, 0x9d, 0xfc, 0x4a, 0x1c, 0x33, 0x74, 0x96, 0x1d, 0x50, 0xa3, 0x53, 0xd5, 0xf1, 0x20, 0xb4, 0x40, 0xd0, 0x60, 0x35, 0xf2, 0xf8, 0x29, 0xcf, 0x5f], [byte 0x44, 0x6a, 0x0e, 0xf1, 0x1b, 0x7c, 0xc1, 0x67, 0xf3, 0xb6, 0x03, 0xe5, 0x85, 0xc7, 0xee, 0xee, 0xb6, 0x75, 0xfa, 0xa4, 0x12, 0xd5, 0xec, 0x73, 0xf6, 0x29, 0x88, 0xeb, 0x0b, 0x6c, 0x54, 0x88])
22
-```
23
-
24
-### 4.2 Listing file mappings
25
-This command lists the file relations between the original source Linux Photon filetree and the deployed filetree. The normal columns include file type type (regular file, directory, link), permissions in chmod octal format, userID, groupID, file size, file name. 
26
-```
27
-root@photon-host [ ~ ]# ostree ls photon/1.0/x86_64/minimal
28
-d00755 0 0      0 /
29
-l00777 0 0      0 /bin -> usr/bin
30
-l00777 0 0      0 /home -> var/home
31
-l00777 0 0      0 /lib -> usr/lib
32
-l00777 0 0      0 /lib64 -> usr/lib
33
-l00777 0 0      0 /media -> run/media
34
-l00777 0 0      0 /mnt -> var/mnt
35
-l00777 0 0      0 /opt -> var/opt
36
-l00777 0 0      0 /ostree -> sysroot/ostree
37
-l00777 0 0      0 /root -> var/roothome
38
-l00777 0 0      0 /sbin -> usr/sbin
39
-l00777 0 0      0 /srv -> var/srv
40
-l00777 0 0      0 /tmp -> sysroot/tmp
41
-d00755 0 0      0 /boot
42
-d00755 0 0      0 /dev
43
-d00755 0 0      0 /proc
44
-d00755 0 0      0 /run
45
-d00755 0 0      0 /sys
46
-d00755 0 0      0 /sysroot
47
-d00755 0 0      0 /usr
48
-d00755 0 0      0 /var
49
-```
50
-Extra columns can be added like checksum (-C) and extended attributes (-X). 
51
-```
52
-root@photon-host [ /usr/share/man/man1 ]# ostree ls photon/1.0/x86_64/minimal -C
53
-d00755 0 0      0 3c6b714407d05ed59dfc4a1c3374961d50a353d5f120b440d06035f2f829cf5f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /
54
-l00777 0 0      0 389846c2702216e1367c8dfb68326a6b93ccf5703c89c93979052a9bf359608e /bin -> usr/bin
55
-l00777 0 0      0 4344c10bf4931483f918496534f12ed9b50dc6a2cead35e3cd9dd898d6ac9414 /home -> var/home
56
-l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib -> usr/lib
57
-l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib64 -> usr/lib
58
-l00777 0 0      0 75317a3df11447c470ffdd63dde045450ca97dfb2a97a0f3f6a21a5da66f737c /media -> run/media
59
-l00777 0 0      0 97c55dbe24e8f3aecfd3f3e5b3f44646fccbb39799807d37a217e9c871da108b /mnt -> var/mnt
60
-l00777 0 0      0 46b1abbd27a846a9257a8d8c9fc4b384ac0888bdb8ac0d6a2d5de72715bd5092 /opt -> var/opt
61
-l00777 0 0      0 d37269e3f46023fd0275212473e07011894cdf4148cbf3fb5758a7e9471dad8e /ostree -> sysroot/ostree
62
-l00777 0 0      0 6f800e74eed172661278d1e1f09e389a6504dcd3358618e1c1618f91f9d33601 /root -> var/roothome
63
-l00777 0 0      0 e0bead7be9323b06bea05cb9b66eb151839989e3a4e5d1a93e09a36919e91818 /sbin -> usr/sbin
64
-l00777 0 0      0 5d4250bba1ed300f793fa9769474351ee5cebd71e8339078af7ebfbe6256d9b5 /srv -> var/srv
65
-l00777 0 0      0 364fbd62f91ca1e06eb7dbd50c93de8976f2cea633658e2dbe803ce6f7490c09 /tmp -> sysroot/tmp
66
-d00755 0 0      0 1e4f98d92b35c453d8f61e668aea9fae7ca1863f6609db787374b4ad5caf3b2f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /boot
67
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /dev
68
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /proc
69
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /run
70
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sys
71
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sysroot
72
-d00755 0 0      0 b072f4b3e995a491c04d88636401ca156e80f103b002d724ae76c07174ee4c74 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /usr
73
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /var
74
-```
75
-
76
-By default, only the top folders are listed, but -R will list recursively. Instead of listing over 10,000 files, let's filter to just all files that contain 'rpm-ostree', 'rpmostree' or 'RpmOstree', that must belong to **rpm-ostree** package itself.
77
-```
78
-root@photon-host [ /usr/share/rpm-ostree ]# ostree ls photon/1.0/x86_64/minimal -R | grep -e '[Rr]pm-\?[Oo]stree'
79
-l00777 0 0      0 /usr/bin/atomic -> rpm-ostree
80
--00755 0 0 131104 /usr/bin/rpm-ostree
81
-l00777 0 0      0 /usr/lib/librpmostree-1.so.1 -> librpmostree-1.so.1.0.0
82
--00755 0 0 104272 /usr/lib/librpmostree-1.so.1.0.0
83
--00644 0 0   1296 /usr/lib/girepository-1.0/RpmOstree-1.0.typelib
84
-d00755 0 0      0 /usr/lib/rpm-ostree
85
--00644 0 0    622 /usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
86
--00644 0 0    717 /usr/lib/tmpfiles.d/rpm-ostree-autovar.conf
87
-d00755 0 0      0 /usr/share/rpm-ostree
88
--00644 0 0   1132 /usr/share/rpm-ostree/treefile.json
89
-```
90
-
91
-**atomic** is really an alias for rpm-ostree command. The last file **treefile.json** is not installed by the rpm-ostree package, it's actually downloaded from the server, as we will see in the next chapter. For now, let's notice **"osname" : "photon",  "ref" : "photon/1.0/x86_64/minimal",  "automatic_version_prefix" : "1.0_minimal"**, that matches what we've known so far, and also the **"documentation" : false** setting, that explains why there are no manual files installed for rpm-ostree, and in fact for any package.
92
-```
93
-root@photon-host [ /usr/share/rpm-ostree ]# ls -l /usr/share/man/man1 
94
-total 0
95
-```
96
-
97
-
98
-### 4.3 Listing configuration changes
99
-
100
-To diff the current /etc configuration versus default /etc (from the base image), this command will show the **M**odified, **A**dded and **D**eleted files:
101
-```
102
-root@photon-host [ ~ ]# ostree admin config-diff
103
-M    mtab
104
-M    ssh/sshd_config
105
-M    shadow
106
-M    hosts
107
-M    fstab
108
-M    machine-id
109
-A    ssh/ssh_host_rsa_key
110
-A    ssh/ssh_host_rsa_key.pub
111
-A    ssh/ssh_host_dsa_key
112
-A    ssh/ssh_host_dsa_key.pub
113
-A    ssh/ssh_host_ecdsa_key
114
-A    ssh/ssh_host_ecdsa_key.pub
115
-A    ssh/ssh_host_ed25519_key
116
-A    ssh/ssh_host_ed25519_key.pub
117
-A    ssh/sshd.pid
118
-A    tmpfiles.d/postinstall.sh
119
-A    udev/hwdb.bin
120
-A    resolv.conf
121
-A    hostname
122
-A    postinstall
123
-A    localtime
124
-A    .updated
125
-```
126
-
127
-### 4.4 Listing packages
128
-As expected, there is an rpm-ostree command that lists all the packages for that branch, extracted from RPM database.   
129
-```
130
-root@photon-host [ ~ ]# rpm-ostree db list photon/1.0/x86_64/minimal
131
-ostree commit: photon/1.0/x86_64/minimal (56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4)
132
- Linux-PAM-1.2.1-3.ph1.x86_64
133
- attr-2.4.47-3.ph1.x86_64
134
- autogen-libopts-5.18.7-2.ph1.x86_64
135
- bash-4.3.30-4.ph1.x86_64
136
- bc-1.06.95-3.ph1.x86_64
137
- binutils-2.25.1-2.ph1.x86_64
138
- bridge-utils-1.5-2.ph1.x86_64
139
- bzip2-1.0.6-5.ph1.x86_64
140
- ca-certificates-20160109-5.ph1.x86_64
141
- coreutils-8.25-2.ph1.x86_64
142
- cpio-2.12-2.ph1.x86_64
143
- cracklib-2.9.6-2.ph1.x86_64
144
- cracklib-dicts-2.9.6-2.ph1.x86_64
145
- curl-7.47.1-2.ph1.x86_64
146
- db-6.1.26-2.ph1.x86_64
147
- dbus-1.8.8-5.ph1.x86_64
148
- device-mapper-2.02.141-5.ph1.x86_64
149
- device-mapper-libs-2.02.141-5.ph1.x86_64
150
- docker-1.11.0-5.ph1.x86_64
151
- dracut-044-3.ph1.x86_64
152
- dracut-tools-044-3.ph1.x86_64
153
- e2fsprogs-1.42.13-2.ph1.x86_64
154
- elfutils-libelf-0.165-2.ph1.x86_64
155
- expat-2.1.0-2.ph1.x86_64
156
- file-5.24-2.ph1.x86_64
157
- filesystem-1.0-7.ph1.x86_64
158
- findutils-4.6.0-2.ph1.x86_64
159
- flex-2.5.39-2.ph1.x86_64
160
- gdbm-1.11-2.ph1.x86_64
161
- glib-2.47.6-2.ph1.x86_64
162
- glib-networking-2.46.1-2.ph1.x86_64
163
- glibc-2.22-8.ph1.x86_64
164
- gmp-6.0.0a-3.ph1.x86_64
165
- gnutls-3.4.11-2.ph1.x86_64
166
- gobject-introspection-1.46.0-2.ph1.x86_64
167
- gpgme-1.6.0-2.ph1.x86_64
168
- grep-2.21-2.ph1.x86_64
169
- grub2-2.02-4.ph1.x86_64
170
- gzip-1.6-2.ph1.x86_64
171
- hawkey-2014.1-4.ph1.x86_64
172
- iana-etc-2.30-2.ph1.noarch
173
- iproute2-4.2.0-2.ph1.x86_64
174
- iptables-1.6.0-4.ph1.x86_64
175
- iputils-20151218-3.ph1.x86_64
176
- json-glib-1.0.4-2.ph1.x86_64
177
- kmod-21-4.ph1.x86_64
178
- krb5-1.14-4.ph1.x86_64
179
- libarchive-3.1.2-6.ph1.x86_64
180
- libassuan-2.4.2-2.ph1.x86_64
181
- libcap-2.25-2.ph1.x86_64
182
- libffi-3.2.1-2.ph1.x86_64
183
- libgcc-5.3.0-3.ph1.x86_64
184
- libgcrypt-1.6.5-2.ph1.x86_64
185
- libgomp-5.3.0-3.ph1.x86_64
186
- libgpg-error-1.21-2.ph1.x86_64
187
- libgsystem-2015.1-2.ph1.x86_64
188
- libhif-0.2.2-2.ph1.x86_64
189
- librepo-1.7.17-2.ph1.x86_64
190
- libselinux-2.5-2.ph1.x86_64
191
- libsepol-2.5-2.ph1.x86_64
192
- libsolv-0.6.19-2.ph1.x86_64
193
- libsoup-2.53.90-2.ph1.x86_64
194
- libstdc++-5.3.0-3.ph1.x86_64
195
- libtasn1-4.7-2.ph1.x86_64
196
- libtool-2.4.6-2.ph1.x86_64
197
- libxml2-2.9.4-1.ph1.x86_64
198
- linux-4.4.8-6.ph1.x86_64
199
- lua-5.3.2-2.ph1.x86_64
200
- m4-1.4.17-2.ph1.x86_64
201
- mkinitcpio-19-2.ph1.x86_64
202
- mpfr-3.1.3-2.ph1.x86_64
203
- ncurses-6.0-2.ph1.x86_64
204
- net-tools-1.60-7.ph1.x86_64
205
- nettle-3.2-2.ph1.x86_64
206
- nspr-4.12-2.ph1.x86_64
207
- nss-3.21-2.ph1.x86_64
208
- nss-altfiles-2.19.1-2.ph1.x86_64
209
- openssh-7.1p2-3.ph1.x86_64
210
- openssl-1.0.2h-2.ph1.x86_64
211
- ostree-2015.7-5.ph1.x86_64
212
- pcre-8.38-3.ph1.x86_64
213
- photon-release-1.0-5.ph1.noarch
214
- pkg-config-0.28-2.ph1.x86_64
215
- popt-1.16-2.ph1.x86_64
216
- procps-ng-3.3.11-2.ph1.x86_64
217
- python2-2.7.11-4.ph1.x86_64
218
- python2-libs-2.7.11-4.ph1.x86_64
219
- readline-6.3-4.ph1.x86_64
220
- rpm-4.11.2-10.ph1.x86_64
221
- rpm-ostree-2015.7-2.ph1.x86_64
222
- sed-4.2.2-2.ph1.x86_64
223
- shadow-4.2.1-7.ph1.x86_64
224
- sqlite-autoconf-3.11.0-2.ph1.x86_64
225
- systemd-228-21.ph1.x86_64
226
- tcsh-6.19.00-4.ph1.x86_64
227
- util-linux-2.27.1-2.ph1.x86_64
228
- vim-7.4-5.ph1.x86_64
229
- which-2.21-2.ph1.x86_64
230
- xz-5.2.2-2.ph1.x86_64
231
- zlib-1.2.8-3.ph1.x86_64
232
-```
233
-
234
-### 4.5 Querying for package details
235
-We are able to use the query option of rpm to make sure any package have been installed properly. The files list should match the previous file mappings in 4.2, so let's check package **rpm-ostree**. As we've seen, manual files listed here are actually missing, they were not installed.
236
-```
237
-root@photon-host [ /usr/share/man/man1 ]# rpm -ql  rpm-ostree
238
-/usr/bin/atomic
239
-/usr/bin/rpm-ostree
240
-/usr/lib/girepository-1.0/RpmOstree-1.0.typelib
241
-/usr/lib/librpmostree-1.so.1
242
-/usr/lib/librpmostree-1.so.1.0.0
243
-/usr/lib/rpm-ostree
244
-/usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
245
-/usr/share/man/man1/atomic.1.gz
246
-/usr/share/man/man1/rpm-ostree.1.gz
247
-```
248
-### 4.6 Why am I unable to install, update or delete packages?
249
-
250
-All the commands executed so far operated in read-only mode. But what if you want to erase or install a package using our old friend rpm?
251
-The RPM database is not writable any longer and the file system itself is read-only (except for /var and /etc directories). The idea is that preparing the packages should be done via server tree composition and deployment at host should bring them installed into a new bootable tree that is read-only, recorded into the read-only RPM database. This will insure that all systems deployed are brought into a predictable state and no one could mess with them.
252
-In fact, tdnf and yum commands are not even available to install new packages at the host. Even if you bring them over, adding a new package via **tdnf install** will return an error.
253
-But don't get sad. Installing, updating and deleting files & packages the RPM-OSTree way - from the server - that's exactly the topic of next chapters.
254
-
255
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OStree:-3-Concepts-in-action]]  | [[Next page >|Photon-RPM-OSTree:-5-Host-updating-operations]] 
256
-
257 1
new file mode 100644
... ...
@@ -0,0 +1,256 @@
0
+# Querying For Commit File and Package Metadata
1
+
2
+There are several ostree and rpm-ostree commands that list file or package data based on either the Commit ID, or Refspec. If Refspec is passed as a parameter, it's the same as passing the most recent commit ID (head) for that branch.
3
+
4
+## 4.1 Commit history
5
+For a host that is freshly installed, there is only one commit in the history for the only branch.
6
+```
7
+root@photon-host [ ~ ]# ostree log photon/1.0/x86_64/minimal
8
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
9
+Date:  2016-06-07 14:06:17 +0000
10
+Version: 1.0_minimal
11
+```
12
+This commit has no parent; if there was an older commit, it would have been listed too. We can get the same listing (either nicely formatted or raw variant data) by passing the Commit ID. Just the first several hex digits will suffice to identify the commit ID. We can either request to be displayed in a pretty format, or raw - the actual C struct.
13
+```
14
+root@photon-host [ ~ ]# ostree log 56ef
15
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
16
+Date:  2016-06-07 14:06:17 +0000
17
+Version: 1.0_minimal
18
+```
19
+```
20
+root@photon-host [ ~ ]# ostree log 56ef --raw
21
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
22
+({'version': <'1.0_minimal'>, 'rpmostree.inputhash': <'40ae75453cf7f00b163848676c4b5716511e7515b95fb7b9168004aa97f05dd9'>}, @ay [], @a(say) [], '', '', uint64 1465308377, [byte 0x3c, 0x6b, 0x71, 0x44, 0x07, 0xd0, 0x5e, 0xd5, 0x9d, 0xfc, 0x4a, 0x1c, 0x33, 0x74, 0x96, 0x1d, 0x50, 0xa3, 0x53, 0xd5, 0xf1, 0x20, 0xb4, 0x40, 0xd0, 0x60, 0x35, 0xf2, 0xf8, 0x29, 0xcf, 0x5f], [byte 0x44, 0x6a, 0x0e, 0xf1, 0x1b, 0x7c, 0xc1, 0x67, 0xf3, 0xb6, 0x03, 0xe5, 0x85, 0xc7, 0xee, 0xee, 0xb6, 0x75, 0xfa, 0xa4, 0x12, 0xd5, 0xec, 0x73, 0xf6, 0x29, 0x88, 0xeb, 0x0b, 0x6c, 0x54, 0x88])
23
+```
24
+
25
+## 4.2 Listing file mappings
26
+This command lists the file relations between the original source Linux Photon filetree and the deployed filetree. The normal columns include file type type (regular file, directory, link), permissions in chmod octal format, userID, groupID, file size, file name. 
27
+```
28
+root@photon-host [ ~ ]# ostree ls photon/1.0/x86_64/minimal
29
+d00755 0 0      0 /
30
+l00777 0 0      0 /bin -> usr/bin
31
+l00777 0 0      0 /home -> var/home
32
+l00777 0 0      0 /lib -> usr/lib
33
+l00777 0 0      0 /lib64 -> usr/lib
34
+l00777 0 0      0 /media -> run/media
35
+l00777 0 0      0 /mnt -> var/mnt
36
+l00777 0 0      0 /opt -> var/opt
37
+l00777 0 0      0 /ostree -> sysroot/ostree
38
+l00777 0 0      0 /root -> var/roothome
39
+l00777 0 0      0 /sbin -> usr/sbin
40
+l00777 0 0      0 /srv -> var/srv
41
+l00777 0 0      0 /tmp -> sysroot/tmp
42
+d00755 0 0      0 /boot
43
+d00755 0 0      0 /dev
44
+d00755 0 0      0 /proc
45
+d00755 0 0      0 /run
46
+d00755 0 0      0 /sys
47
+d00755 0 0      0 /sysroot
48
+d00755 0 0      0 /usr
49
+d00755 0 0      0 /var
50
+```
51
+Extra columns can be added like checksum (-C) and extended attributes (-X). 
52
+```
53
+root@photon-host [ /usr/share/man/man1 ]# ostree ls photon/1.0/x86_64/minimal -C
54
+d00755 0 0      0 3c6b714407d05ed59dfc4a1c3374961d50a353d5f120b440d06035f2f829cf5f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /
55
+l00777 0 0      0 389846c2702216e1367c8dfb68326a6b93ccf5703c89c93979052a9bf359608e /bin -> usr/bin
56
+l00777 0 0      0 4344c10bf4931483f918496534f12ed9b50dc6a2cead35e3cd9dd898d6ac9414 /home -> var/home
57
+l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib -> usr/lib
58
+l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib64 -> usr/lib
59
+l00777 0 0      0 75317a3df11447c470ffdd63dde045450ca97dfb2a97a0f3f6a21a5da66f737c /media -> run/media
60
+l00777 0 0      0 97c55dbe24e8f3aecfd3f3e5b3f44646fccbb39799807d37a217e9c871da108b /mnt -> var/mnt
61
+l00777 0 0      0 46b1abbd27a846a9257a8d8c9fc4b384ac0888bdb8ac0d6a2d5de72715bd5092 /opt -> var/opt
62
+l00777 0 0      0 d37269e3f46023fd0275212473e07011894cdf4148cbf3fb5758a7e9471dad8e /ostree -> sysroot/ostree
63
+l00777 0 0      0 6f800e74eed172661278d1e1f09e389a6504dcd3358618e1c1618f91f9d33601 /root -> var/roothome
64
+l00777 0 0      0 e0bead7be9323b06bea05cb9b66eb151839989e3a4e5d1a93e09a36919e91818 /sbin -> usr/sbin
65
+l00777 0 0      0 5d4250bba1ed300f793fa9769474351ee5cebd71e8339078af7ebfbe6256d9b5 /srv -> var/srv
66
+l00777 0 0      0 364fbd62f91ca1e06eb7dbd50c93de8976f2cea633658e2dbe803ce6f7490c09 /tmp -> sysroot/tmp
67
+d00755 0 0      0 1e4f98d92b35c453d8f61e668aea9fae7ca1863f6609db787374b4ad5caf3b2f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /boot
68
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /dev
69
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /proc
70
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /run
71
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sys
72
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sysroot
73
+d00755 0 0      0 b072f4b3e995a491c04d88636401ca156e80f103b002d724ae76c07174ee4c74 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /usr
74
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /var
75
+```
76
+
77
+By default, only the top folders are listed, but -R will list recursively. Instead of listing over 10,000 files, let's filter to just all files that contain 'rpm-ostree', 'rpmostree' or 'RpmOstree', that must belong to **rpm-ostree** package itself.
78
+```
79
+root@photon-host [ /usr/share/rpm-ostree ]# ostree ls photon/1.0/x86_64/minimal -R | grep -e '[Rr]pm-\?[Oo]stree'
80
+l00777 0 0      0 /usr/bin/atomic -> rpm-ostree
81
+-00755 0 0 131104 /usr/bin/rpm-ostree
82
+l00777 0 0      0 /usr/lib/librpmostree-1.so.1 -> librpmostree-1.so.1.0.0
83
+-00755 0 0 104272 /usr/lib/librpmostree-1.so.1.0.0
84
+-00644 0 0   1296 /usr/lib/girepository-1.0/RpmOstree-1.0.typelib
85
+d00755 0 0      0 /usr/lib/rpm-ostree
86
+-00644 0 0    622 /usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
87
+-00644 0 0    717 /usr/lib/tmpfiles.d/rpm-ostree-autovar.conf
88
+d00755 0 0      0 /usr/share/rpm-ostree
89
+-00644 0 0   1132 /usr/share/rpm-ostree/treefile.json
90
+```
91
+
92
+**atomic** is really an alias for rpm-ostree command. The last file **treefile.json** is not installed by the rpm-ostree package, it's actually downloaded from the server, as we will see in the next chapter. For now, let's notice **"osname" : "photon",  "ref" : "photon/1.0/x86_64/minimal",  "automatic_version_prefix" : "1.0_minimal"**, that matches what we've known so far, and also the **"documentation" : false** setting, that explains why there are no manual files installed for rpm-ostree, and in fact for any package.
93
+```
94
+root@photon-host [ /usr/share/rpm-ostree ]# ls -l /usr/share/man/man1 
95
+total 0
96
+```
97
+
98
+
99
+## 4.3 Listing configuration changes
100
+
101
+To diff the current /etc configuration versus default /etc (from the base image), this command will show the **M**odified, **A**dded and **D**eleted files:
102
+```
103
+root@photon-host [ ~ ]# ostree admin config-diff
104
+M    mtab
105
+M    ssh/sshd_config
106
+M    shadow
107
+M    hosts
108
+M    fstab
109
+M    machine-id
110
+A    ssh/ssh_host_rsa_key
111
+A    ssh/ssh_host_rsa_key.pub
112
+A    ssh/ssh_host_dsa_key
113
+A    ssh/ssh_host_dsa_key.pub
114
+A    ssh/ssh_host_ecdsa_key
115
+A    ssh/ssh_host_ecdsa_key.pub
116
+A    ssh/ssh_host_ed25519_key
117
+A    ssh/ssh_host_ed25519_key.pub
118
+A    ssh/sshd.pid
119
+A    tmpfiles.d/postinstall.sh
120
+A    udev/hwdb.bin
121
+A    resolv.conf
122
+A    hostname
123
+A    postinstall
124
+A    localtime
125
+A    .updated
126
+```
127
+
128
+## 4.4 Listing packages
129
+As expected, there is an rpm-ostree command that lists all the packages for that branch, extracted from RPM database.   
130
+```
131
+root@photon-host [ ~ ]# rpm-ostree db list photon/1.0/x86_64/minimal
132
+ostree commit: photon/1.0/x86_64/minimal (56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4)
133
+ Linux-PAM-1.2.1-3.ph1.x86_64
134
+ attr-2.4.47-3.ph1.x86_64
135
+ autogen-libopts-5.18.7-2.ph1.x86_64
136
+ bash-4.3.30-4.ph1.x86_64
137
+ bc-1.06.95-3.ph1.x86_64
138
+ binutils-2.25.1-2.ph1.x86_64
139
+ bridge-utils-1.5-2.ph1.x86_64
140
+ bzip2-1.0.6-5.ph1.x86_64
141
+ ca-certificates-20160109-5.ph1.x86_64
142
+ coreutils-8.25-2.ph1.x86_64
143
+ cpio-2.12-2.ph1.x86_64
144
+ cracklib-2.9.6-2.ph1.x86_64
145
+ cracklib-dicts-2.9.6-2.ph1.x86_64
146
+ curl-7.47.1-2.ph1.x86_64
147
+ db-6.1.26-2.ph1.x86_64
148
+ dbus-1.8.8-5.ph1.x86_64
149
+ device-mapper-2.02.141-5.ph1.x86_64
150
+ device-mapper-libs-2.02.141-5.ph1.x86_64
151
+ docker-1.11.0-5.ph1.x86_64
152
+ dracut-044-3.ph1.x86_64
153
+ dracut-tools-044-3.ph1.x86_64
154
+ e2fsprogs-1.42.13-2.ph1.x86_64
155
+ elfutils-libelf-0.165-2.ph1.x86_64
156
+ expat-2.1.0-2.ph1.x86_64
157
+ file-5.24-2.ph1.x86_64
158
+ filesystem-1.0-7.ph1.x86_64
159
+ findutils-4.6.0-2.ph1.x86_64
160
+ flex-2.5.39-2.ph1.x86_64
161
+ gdbm-1.11-2.ph1.x86_64
162
+ glib-2.47.6-2.ph1.x86_64
163
+ glib-networking-2.46.1-2.ph1.x86_64
164
+ glibc-2.22-8.ph1.x86_64
165
+ gmp-6.0.0a-3.ph1.x86_64
166
+ gnutls-3.4.11-2.ph1.x86_64
167
+ gobject-introspection-1.46.0-2.ph1.x86_64
168
+ gpgme-1.6.0-2.ph1.x86_64
169
+ grep-2.21-2.ph1.x86_64
170
+ grub2-2.02-4.ph1.x86_64
171
+ gzip-1.6-2.ph1.x86_64
172
+ hawkey-2014.1-4.ph1.x86_64
173
+ iana-etc-2.30-2.ph1.noarch
174
+ iproute2-4.2.0-2.ph1.x86_64
175
+ iptables-1.6.0-4.ph1.x86_64
176
+ iputils-20151218-3.ph1.x86_64
177
+ json-glib-1.0.4-2.ph1.x86_64
178
+ kmod-21-4.ph1.x86_64
179
+ krb5-1.14-4.ph1.x86_64
180
+ libarchive-3.1.2-6.ph1.x86_64
181
+ libassuan-2.4.2-2.ph1.x86_64
182
+ libcap-2.25-2.ph1.x86_64
183
+ libffi-3.2.1-2.ph1.x86_64
184
+ libgcc-5.3.0-3.ph1.x86_64
185
+ libgcrypt-1.6.5-2.ph1.x86_64
186
+ libgomp-5.3.0-3.ph1.x86_64
187
+ libgpg-error-1.21-2.ph1.x86_64
188
+ libgsystem-2015.1-2.ph1.x86_64
189
+ libhif-0.2.2-2.ph1.x86_64
190
+ librepo-1.7.17-2.ph1.x86_64
191
+ libselinux-2.5-2.ph1.x86_64
192
+ libsepol-2.5-2.ph1.x86_64
193
+ libsolv-0.6.19-2.ph1.x86_64
194
+ libsoup-2.53.90-2.ph1.x86_64
195
+ libstdc++-5.3.0-3.ph1.x86_64
196
+ libtasn1-4.7-2.ph1.x86_64
197
+ libtool-2.4.6-2.ph1.x86_64
198
+ libxml2-2.9.4-1.ph1.x86_64
199
+ linux-4.4.8-6.ph1.x86_64
200
+ lua-5.3.2-2.ph1.x86_64
201
+ m4-1.4.17-2.ph1.x86_64
202
+ mkinitcpio-19-2.ph1.x86_64
203
+ mpfr-3.1.3-2.ph1.x86_64
204
+ ncurses-6.0-2.ph1.x86_64
205
+ net-tools-1.60-7.ph1.x86_64
206
+ nettle-3.2-2.ph1.x86_64
207
+ nspr-4.12-2.ph1.x86_64
208
+ nss-3.21-2.ph1.x86_64
209
+ nss-altfiles-2.19.1-2.ph1.x86_64
210
+ openssh-7.1p2-3.ph1.x86_64
211
+ openssl-1.0.2h-2.ph1.x86_64
212
+ ostree-2015.7-5.ph1.x86_64
213
+ pcre-8.38-3.ph1.x86_64
214
+ photon-release-1.0-5.ph1.noarch
215
+ pkg-config-0.28-2.ph1.x86_64
216
+ popt-1.16-2.ph1.x86_64
217
+ procps-ng-3.3.11-2.ph1.x86_64
218
+ python2-2.7.11-4.ph1.x86_64
219
+ python2-libs-2.7.11-4.ph1.x86_64
220
+ readline-6.3-4.ph1.x86_64
221
+ rpm-4.11.2-10.ph1.x86_64
222
+ rpm-ostree-2015.7-2.ph1.x86_64
223
+ sed-4.2.2-2.ph1.x86_64
224
+ shadow-4.2.1-7.ph1.x86_64
225
+ sqlite-autoconf-3.11.0-2.ph1.x86_64
226
+ systemd-228-21.ph1.x86_64
227
+ tcsh-6.19.00-4.ph1.x86_64
228
+ util-linux-2.27.1-2.ph1.x86_64
229
+ vim-7.4-5.ph1.x86_64
230
+ which-2.21-2.ph1.x86_64
231
+ xz-5.2.2-2.ph1.x86_64
232
+ zlib-1.2.8-3.ph1.x86_64
233
+```
234
+
235
+## 4.5 Querying for package details
236
+We are able to use the query option of rpm to make sure any package have been installed properly. The files list should match the previous file mappings in 4.2, so let's check package **rpm-ostree**. As we've seen, manual files listed here are actually missing, they were not installed.
237
+```
238
+root@photon-host [ /usr/share/man/man1 ]# rpm -ql  rpm-ostree
239
+/usr/bin/atomic
240
+/usr/bin/rpm-ostree
241
+/usr/lib/girepository-1.0/RpmOstree-1.0.typelib
242
+/usr/lib/librpmostree-1.so.1
243
+/usr/lib/librpmostree-1.so.1.0.0
244
+/usr/lib/rpm-ostree
245
+/usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
246
+/usr/share/man/man1/atomic.1.gz
247
+/usr/share/man/man1/rpm-ostree.1.gz
248
+```
249
+## 4.6 Why am I unable to install, update or delete packages?
250
+
251
+All the commands executed so far operated in read-only mode. But what if you want to erase or install a package using our old friend rpm?
252
+The RPM database is not writable any longer and the file system itself is read-only (except for /var and /etc directories). The idea is that preparing the packages should be done via server tree composition and deployment at host should bring them installed into a new bootable tree that is read-only, recorded into the read-only RPM database. This will insure that all systems deployed are brought into a predictable state and no one could mess with them.
253
+In fact, tdnf and yum commands are not even available to install new packages at the host. Even if you bring them over, adding a new package via **tdnf install** will return an error.
254
+But don't get sad. Installing, updating and deleting files & packages the RPM-OSTree way - from the server - that's exactly the topic of next chapters.
255
+
... ...
@@ -1,4 +1,6 @@
1
-### 5.1 Is it an update or an upgrade?
1
+# Host Updating Operations 
2
+
3
+## 5.1 Is it an update or an upgrade?
2 4
 If you've used yum, dnf (and now tdnf for Photon) in RPM systems or apt-get in Debian based Unix, you understand what "install" is for packages and the subtle difference between "update" and "upgrade".
3 5
 
4 6
 OSTree and RPM-OSTree don't distringuish between them and the term "upgrade" has a slightly different meaning - to bring the system in sync with the remote repo, to the top of the Refspec (branch), just like in Git, by pulling the latest changes.
... ...
@@ -10,7 +12,7 @@ The reverse operation of an upgrade is a "rollback" and fortunately it's not nam
10 10
 As we'll see in a future chapter, a jump to a different Refspec (branch) is also supported and it's named "rebase".
11 11
 
12 12
 
13
-### 5.2 Incremental upgrade
13
+## 5.2 Incremental upgrade
14 14
 To check if there are any updates available, one would execute:
15 15
 ```
16 16
 root@photon-host-def [ ~ ]# rpm-ostree upgrade
... ...
@@ -95,7 +97,7 @@ root@photon-host-def [ ~ ]# ostree admin config-diff --print-current-dir
95 95
 ```
96 96
 A fresh upgrade for a new version will delete the older, original image and bring a new one, that will become the new default image. The previous 'default' image will move down one position as the backup image.
97 97
 
98
-### 5.3 Listing file differences   
98
+## 5.3 Listing file differences   
99 99
 Now we can look at what files have been **A**dded, **M**odified, **D**eleted due to the addition of those three packages and switching of the boot directories, by comparing the two commits.
100 100
 ```
101 101
 root@photon-host-def [ ~ ]# ostree diff 2940 82bc
... ...
@@ -343,7 +345,7 @@ A    /usr/share/awk/walkarray.awk
343 343
 A    /usr/share/awk/zerofile.awk
344 344
 ```
345 345
  
346
-### 5.4 Listing package differences
346
+## 5.4 Listing package differences
347 347
 We can also look at package differences, as you expect, using the right tool for the job.
348 348
 ```
349 349
 root@photon-host-def [ ~ ]# rpm-ostree db diff 2940 82bc    
... ...
@@ -355,7 +357,7 @@ Added:
355 355
  wget-1.15-1.ph1.x86_64
356 356
 ```
357 357
 
358
-### 5.5 Rollback
358
+## 5.5 Rollback
359 359
 If we want to go back to the previous image, we can rollback. The order of the images will be changed, so the old filetree will become the default bootable image. If -r option is passed, the rollback will continue with a reboot.
360 360
 ```
361 361
 root@photon-host-def [ ~ ]# rpm-ostree rollback
... ...
@@ -384,7 +386,7 @@ root@photon-host-def [ ~ ]# ostree admin config-diff --print-current-dir
384 384
 /ostree/deploy/photon/deploy/2940e10c4d90ce6da572cbaeeff7b511cab4a64c280bd5969333dd2fca57cfa8.0 
385 385
 ```
386 386
 
387
-### 5.6 Deleting a deployed filetree
387
+## 5.6 Deleting a deployed filetree
388 388
 It is possible to delete a deployed tree. You won't need to do that normally, as upgrading to a new image will delete the old one, but if for some reason deploying failed (loss of power, networking issues), you'll want to delete the partially deployed image.  
389 389
 The only supported index is 1. (If multiple bootable images will be supported in the future, a larger than one, zero-based index of the image to delete will be supported).  
390 390
 You cannot delete the default bootable filetree, so passing 0 will result in an error.  
... ...
@@ -434,7 +436,7 @@ Updating from: photon:photon/1.0/x86_64/minimal
434 434
 +wget-1.15-1.ph1.x86_64
435 435
 ```
436 436
 
437
-### 5.7 Version skipping upgrade
437
+## 5.7 Version skipping upgrade
438 438
 
439 439
 Let's assume that after a while, VMware releases version 2 that removes **sudo** and adds **bison** and **tar**. Now, an upgrade will skip version 1 and go directly to 2. Let's first look at what packages are pulled (notice sudo missing, as expected), then upgrade with reboot option.
440 440
 ```
... ...
@@ -479,7 +481,7 @@ error: Refspec '82bc' not found
479 479
 ```
480 480
 Interesting fact: The metadata for commit 82bc has been removed from the local repo!  
481 481
 
482
-### 5.8 Tracking parent commits
482
+## 5.8 Tracking parent commits
483 483
 OSTree will display limited commit history - maximum 2 levels, so if you want to traverse the history even though it may not find a commitment by its ID, you can refer to its parent using '^' suffix, grandfather via '^^' and so on. We know that 82bc is the parent of 092e:
484 484
 ```
485 485
 root@photon-host-def [ ~ ]# rpm-ostree db diff  092e^ 092e
... ...
@@ -490,7 +492,7 @@ error: No such metadata object 82bca728eadb7292d568404484ad6889c3f6303600ca8c743
490 490
 ````
491 491
 So commit 092e knows who its parent is, but its metadata is no longer in the local repo, so it cannot traverse further to its parent to find an existing grandfather.
492 492
 
493
-### 5.9 Resetting a branch to a previous commit
493
+## 5.9 Resetting a branch to a previous commit
494 494
 We can reset the head of a branch in a local repo to a previous commit, for example corresponding to version 0 (1.0_minimal).
495 495
 ```
496 496
 root@photon-host-def [ ~ ]# ostree reset photon:photon/1.0/x86_64/minimal 2940
... ...
@@ -1,16 +1,18 @@
1
+# Installing a server
2
+
1 3
 This is the server that is going to be used by a system administrator or a package installer developer to compose filesystem trees and make them available to hosts (or clients) to pull (download) and deploy.  
2 4
 
3 5
 The first step is to download the ISO for the desired release, if you have not done that already:  
4
-[[Photon 1.0 GA ISO file|https://bintray.com/artifact/download/vmware/photon/photon-1.0-13c08b6.iso]]  
5
-[[Photon 1.0 Rev2 ISO file|https://bintray.com/artifact/download/vmware/photon/photon-1.0-62c543d.iso]]  
6
-[[Photon OS 2.0 Beta ISO file|https://bintray.com/vmware/photon/download_file?file_path=2.0%2FBeta%2Fiso%2Fphoton-2.0-8553d58.iso]]  
6
+[Photon 1.0 GA ISO file](https://bintray.com/artifact/download/vmware/photon/photon-1.0-13c08b6.iso)  
7
+[Photon 1.0 Rev2 ISO file](https://bintray.com/artifact/download/vmware/photon/photon-1.0-62c543d.iso)  
8
+[Photon OS 2.0 Beta ISO file](https://bintray.com/vmware/photon/download_file?file_path=2.0%2FBeta%2Fiso%2Fphoton-2.0-8553d58.iso)  
7 9
 
8 10
 Installation steps are the same to all Photon OS versions, except that under the hood:
9 11
 * Photon 1.0 sets up a 'minimal' sample file tree, so it's ready to accept host pull/install requests right away.
10 12
 * Photon 2.0 does not set up a file tree, so there are several steps needed post-install to have a completely functional server that host can deploy from; they will be explained in detail in Chapter 8 and 9, but a quick setup is provided for you later in this chapter.  
11 13
 
12
-### 6.1 Manual install of a server
13
-First, create a new VM in Fusion, Workstation or ESXi box, and go through the [[steps common to all installation profiles|Running-Project-Photon-on-Fusion]], then select the "Photon OSTree Server" option.
14
+## 6.1 Manual install of a server
15
+First, create a new VM in Fusion, Workstation or ESXi box, and go through the [steps common to all installation profiles](Running-Project-Photon-on-Fusion), then select the "Photon OSTree Server" option.
14 16
 
15 17
 ![PhotonChooseServer](https://cloud.githubusercontent.com/assets/13158414/14802949/1c5f92b8-0b0a-11e6-8d69-96e62218dfcb.png)
16 18
 
... ...
@@ -26,23 +28,22 @@ In order for hosts to access server's OSTree repo via http, an Apache web server
26 26
 The server's IP address will be passed to the Photon RPM-OSTree hosts that want to connect to this server.  
27 27
 You may ask your network administrator for a static IP, registered to your company's DNS, so your users who install Photon RPM-OSTree hosts will enter a pretty name like http://photon-srv.yourcompany.com, rather than remember a numeric IP address.
28 28
 
29
-Having the server configured, you may advance to next chapter to [[install your own host from this server's repository|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository]]. That's a way to verify right away that all components (server, network) are running correctly and test the 'minimal' server filetree image by downloading and installing it at the host.
29
+Having the server configured, you may advance to next chapter to [install your own host from this server's repository](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md). That's a way to verify right away that all components (server, network) are running correctly and test the 'minimal' server filetree image by downloading and installing it at the host.
30 30
 
31
-### 6.2 Composing your first OSTree repo  
31
+## 6.2 Composing your first OSTree repo  
32 32
 If you've installed Photon 2.0 OSTree server, the server did not setup a tree as part of an installation, but configuration files for starter 'base', 'minimal' and 'full' tree are there for you. To create a 'minimal' tree, you only need two commands - one to initialize a new repo, the other one to compose it.
33 33
 ```
34 34
 root [ ~ ]# cd /srv/rpm-ostree
35 35
 root [ /srv/rpm-ostree ]# ostree --repo=repo init --mode=archive-z2
36 36
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
37 37
 ```
38
-You are now ready to deploy a host, explained in next chapter. Skip to [[Chapter 8: File oriented server operations|Photon-RPM-OStree:-8-File-oriented-server-operations]] and [[Chapter 9: Package oriented server operations|Photon-RPM-OSTree:-9-Package-oriented-server-operations]] to learn create your own customized file tree.   
38
+You are now ready to deploy a host, explained in next chapter. Skip to [Chapter 8: File oriented server operations](Photon-RPM-OStree-8-File-oriented-server-operations.md) and [Chapter 9: Package oriented server operations](Photon-RPM-OSTree-9-Package-oriented-server-operations.md) to learn create your own customized file tree.   
39 39
 
40
-### 6.2 Automated install of a server via kickstart
40
+## 6.2 Automated install of a server via kickstart
41 41
 All Photon OS versions support unattended install, in other words installer will display its progress, but will not prompt for any keys to be clicked, and will boot at the end of installation. This will create an identical server as installing via UI.
42 42
 
43
-If not familiar with the way kickstart works, visit [[Kickstart Support in Photon OS|https://github.com/vmware/photon/blob/master/docs/kickstart.md]]. The kickstart json config for OSTree is similar to minimal or full, except for this setting:  
43
+If not familiar with the way kickstart works, visit [Kickstart Support in Photon OS](kickstart.md). The kickstart json config for OSTree is similar to minimal or full, except for this setting:  
44 44
 ```
45 45
 "type": "ostree_server"
46 46
 ```
47 47
 
48
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-5-Host-updating-operations]] | [[Next page >|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository]]
49 48
\ No newline at end of file
... ...
@@ -1,14 +1,16 @@
1
+# Installing a Photon RPM-OStree host against a custom server repository
2
+
1 3
 Organizations that maintain their own OSTree servers create custom image trees suited to their needs from which hosts can be deployed and upgraded. One single server may make available several branches to install, for example "base", "minimal" and "full". Or, if you think in terms of Windows OS SKUs - "Home", "Professional" or "Enterprise" edition.
2 4
 
3 5
 So in fact there are two pieces of information the OSTree host installer needs - the server URL and the branch ref. Also, there are two ways to pass this info - manually via keyboard, when prompted and automated, by reading from a config file.
4 6
 
5
-### 7.1 Manual install of a custom host
6
-For Photon 1.0 or 1.0 Revision 2, installing a Photon RPM-OSTree host that will pull from a server repository of your choice is very similar to the way we installed the host against the default server repo in [[Chapter 2|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]].  
7
+## 7.1 Manual install of a custom host
8
+For Photon 1.0 or 1.0 Revision 2, installing a Photon RPM-OSTree host that will pull from a server repository of your choice is very similar to the way we installed the host against the default server repo in [Chapter 2](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md).  
7 9
 We will follow the same steps, selecting "Photon OSTree Host", and after assigning a host name like **photon-host** and a root password, this time we will click on "Custom RPM-OSTree Server".  
8 10
 
9 11
 ![PhotonHostCustom](https://cloud.githubusercontent.com/assets/13158414/14804629/fe17c7d4-0b19-11e6-9cc6-7e79f768b7b1.png)
10 12
 
11
-An additional screen will ask for the URL of server repo - just enter the IP address or fully qualified domain name of the [[server installed in the previous step|Photon-RPM-OSTree:-6-Installing-a-server]].  
13
+An additional screen will ask for the URL of server repo - just enter the IP address or fully qualified domain name of the [server installed in the previous step](Photon-RPM-OSTree-6-Installing-a-server.md).  
12 14
 
13 15
 ![PhotonHostCustomURL](https://cloud.githubusercontent.com/assets/13158414/14804647/185f1aa2-0b1a-11e6-9e44-e2f54592da35.png)
14 16
 
... ...
@@ -17,14 +19,14 @@ You will then be asked to enter a Refspec. Leave the default 'photon/1.0/x86_64/
17 17
 ![PhotonHostCustomRefspec](https://cloud.githubusercontent.com/assets/13158414/14804653/1f0d31cc-0b1a-11e6-8f56-e8cac1f72852.png)
18 18
 
19 19
 Once this is done and the installation finished, reboot and you are ready to use it.  
20
-You may verify - just like in [[Chapter 3.1|Photon-RPM-OStree:-3-Concepts-in-action#31-querying-the-deployed-filetrees]] - that you can get an rpm-ostree status. The value for the CommitID should be identical to the [[host that installed from default repo|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]], if the [[server|Photon-RPM-OSTree:-6-Installing-a-server]] has been installed fresh, from the same ISO.  
20
+You may verify - just like in [Chapter 3.1](Photon-RPM-OStree-3-Concepts-in-action#31-querying-the-deployed-filetrees.md) - that you can get an rpm-ostree status. The value for the CommitID should be identical to the [host that installed from default repo](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md), if the [server](Photon-RPM-OSTree-6-Installing-a-server.md) has been installed fresh, from the same ISO.  
21 21
 
22 22
 Photon 2.0 does not provide the UI option to install an RPM-OSTree host, but supports automated, UI-less install, that we'll explore next.
23 23
 
24
-### 7.2 Automated install of a custom host via kickstart
24
+## 7.2 Automated install of a custom host via kickstart
25 25
 Photon 1.0, 1.0 Revision 2 and Photon OS 2.0 support automated install that will not interact with the user, in other words installer will display its progress, but will not prompt for any keys to be clicked, and will boot at the end of installation.  
26 26
 
27
-If not familiar with the way kickstart works, visit [[Kickstart Support in Photon OS|https://github.com/vmware/photon/blob/master/docs/kickstart.md]]. The kickstart json config for OSTree is similar to minimal or full, except for these settings that should sound familiar: 
27
+If not familiar with the way kickstart works, visit [Kickstart Support in Photon OS](kickstart.md). The kickstart json config for OSTree is similar to minimal or full, except for these settings that should sound familiar: 
28 28
 ```
29 29
     ...
30 30
     "type": "ostree_host",
... ...
@@ -35,5 +37,3 @@ If not familiar with the way kickstart works, visit [[Kickstart Support in Photo
35 35
 If the server is Photon OS 2.0, and the administrator composed trees for the included json files, the ostree_repo_ref will take either value: **photon/2.0/x86_64/base**, **photon/2.0/x86_64/minimal**, or **photon/2.0/x86_64/full**.
36 36
 
37 37
 In most situations, kickstart file is accessed via http from PXE boot. That enables booting from network and end to end install of hosts from pre-defined server URL and branch without assistance from user. 
38
-
39
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous Page|Photon-RPM-OSTree:-6-Installing-a-server]] | [[Next page >|Photon-RPM-OStree:-8-File-oriented-server-operations]]
40 38
\ No newline at end of file
... ...
@@ -1,4 +1,6 @@
1
-Now that we have a Photon RPM-OSTree server up and running (if not, see how to [[install|Photon-RPM-OSTree:-6-Installing-a-server]] one), we will learn how to provide the desired set of packages as input and instruct rpm-ostree to compose a filetree, that will result in creation (or update) of an OSTree repo.   
1
+# Package Oriented Server Operations
2
+
3
+Now that we have a Photon RPM-OSTree server up and running (if not, see how to [install](Photon-RPM-OSTree-6-Installing-a-server.md)), we will learn how to provide the desired set of packages as input and instruct rpm-ostree to compose a filetree, that will result in creation (or update) of an OSTree repo.   
2 4
 The simplest way to explain is to take a look at the files installed by the Photon RPM-OSTree server during setup.  
3 5
 ```  
4 6
 root [ ~ ]# cd /srv/rpm-ostree/
... ...
@@ -13,7 +15,7 @@ lrwxrwxrwx 1 root root   28 Aug 28 19:06 photon-ostree.repo -> /etc/yum.repos.d/
13 13
 lrwxrwxrwx 1 root root   36 Aug 28 19:06 photon-updates-ostree.repo -> /etc/yum.repos.d/photon-updates.repo
14 14
 drwxr-xr-x 7 root root 4096 Aug 20 22:27 repo
15 15
 ```
16
-### 9.1 JSON configuration file
16
+## 9.1 JSON configuration file
17 17
 How can we tell rpm-ostree what packages we want to include, where to get them from and how to compose the filetree? There is JSON file for that. Let's take a look at photon-base.json used by the Photon OS team.  
18 18
 ```
19 19
 root [ /srv/rpm-ostree ]# cat photon-base.json 
... ...
@@ -50,15 +52,15 @@ root [ /srv/rpm-ostree ]# cat photon-base.json
50 50
 }
51 51
 ``` 
52 52
 There are some mandatory settings, some optional. I'm only going to explain the most important ones for our use case.  
53
-**osname** and **ref** should be familiar, they have been explained in previous sections [[OSname|Photon-RPM-OStree:-3-Concepts-in-action#34-osname]] and [[Refspec|Photon-RPM-OStree:-3-Concepts-in-action#35-refspec]]. Basicaly, we are asking `rpm-ostree` to compose a tree for photon OS and photon/1.0/x86_64/minimal branch.
53
+**osname** and **ref** should be familiar, they have been explained in previous sections [OSname](Photon-RPM-OStree-3-Concepts-in-action.md#34-osname) and [Refspec](Photon-RPM-OStree-3-Concepts-in-action.md#35-refspec). Basicaly, we are asking `rpm-ostree` to compose a tree for photon OS and photon/1.0/x86_64/minimal branch.
54 54
 
55
-### 9.2 Package addition, removal, upgrade 
55
+## 9.2 Package addition, removal, upgrade 
56 56
 **packages** is the list of packages that are to be added, in this case, in the "minimal" installation profile, on top of the packages already included by default. This is not quite the identical set of RPMS you get when you select the minimal profile in the ISO installer, but it's pretty close and that's why it's been named the same. 
57 57
 Let's add to the list three new packages: gawk, sudo and wget using `vim photon-base.json`
58 58
 
59 59
 **!!!Warning: do not remove any packages from the default list, even an "innocent" one, as it may bring the system to an unstable condition.  During my testing, I've removed "which"; it turns out it was used to figure out the grub booting roots: on reboot, the system was left hanging at grub prompt.**
60 60
 
61
-### 9.3 RPMS repository
61
+## 9.3 RPMS repository
62 62
 But where are these packages located? RPM-OStree uses the same standard RPMS repositories, that yum installs from.
63 63
 ``` 
64 64
 root [ /srv/rpm-ostree ]# ls /etc/yum.repos.d/
... ...
@@ -90,7 +92,7 @@ noarch  repodata  x86_64
90 90
 ```
91 91
 All you have to do now is to replace the `"repos": ["photon"]` entry by `"repos": ["photon-iso"]`, which will point to the RPMS repo on CD-ROM, rather than the online repo. This way, composing saves time, bandwidth and reduces to zero the risk of failure because of a networking issue. 
92 92
 
93
-_**Note**_: Check from time to time if the [[known issue|Photon-RPM-OSTree:-Appendix-A:-Known-issues#error-composing-when-photon-iso-repo-is-selected]] has been fixed.
93
+_**Note**_: Check from time to time if the [known issue](Photon-RPM-OSTree-Appendix-A:-Known-issues.md#error-composing-when-photon-iso-repo-is-selected) has been fixed.
94 94
 ```
95 95
 root [ /srv/rpm-ostree ]# cat /etc/yum.repos.d/photon-iso.repo 
96 96
 [photon-iso]
... ...
@@ -105,7 +107,7 @@ skip_if_unavailable=True
105 105
 There are already in current directory links created to all repositories in /etc/yum.repos.d, so they are found when tree compose command is invoked. You may add any other repo to the list and include packages found in that repo to be part of the image. 
106 106
 
107 107
 
108
-### 9.4 Composing a tree
108
+## 9.4 Composing a tree
109 109
 After so much preparation, it's time to execute a tree compose. We've only added 3 new packages and changed the RPMS repo source. Assuming you've already edited the JSON file, let's do it.
110 110
 ```
111 111
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
... ...
@@ -222,13 +224,13 @@ No apparent changes since previous commit; use --force-nocache to override
222 222
 This takes several minutes. Then why is the RPM-OSTree server installing so fast, in 45 seconds on my SSD? The server doesn't compose the tree, it uses a pre-created OSTree repo that is stored on the CD-ROM. It comes of course at the expense of larger CD-ROM size. This OSTree repo is created from the same set of RPMS on the CD-ROM, so if you compose fresh, you will get the same exact tree, with same commit ID for the "minimal" ref. 
223 223
 
224 224
 
225
-### 9.5 Automatic version prefix
225
+## 9.5 Automatic version prefix
226 226
 If you recall the filetree version explained earlier, this is where it comes into play. When a tree is composed from scratch, the first version (0) associated to the initial commit is going to get that human readable value. Any subsequent compose operation will auto-increment to .1, .2, .3 and so on.  
227 227
 It's a good idea to start a versionning scheme of your own, so that your customized Photon builds that may get different packages of your choice don't get the same version numbers as the official Photon team builds, coming from VMware's bintray OSTree repository. There is no conflict, it's just confusing to have same name for different commits coming from different repos!  
228 228
 So if you work for a company named Big Data Inc., you may want to switch to a new versioning scheme `"automatic_version_prefix": "1.0_bigdata"`.
229 229
 
230 230
 
231
-### 9.6 Installing package updates
231
+## 9.6 Installing package updates
232 232
 If you want to provide hosts with the package updates that VMware periodically releases, all that you need to do is to add the photon-updates.repo to the list of repos in photon-base.json and then re-compose the usual way. 
233 233
 ```
234 234
 "repos": ["photon", "photon-updates"],
... ...
@@ -314,9 +316,6 @@ Added:
314 314
  libssh2-1.8.0-1.ph1.x86_64
315 315
 ``` 
316 316
 
317
-### 9.7 Composing for a different branch
317
+## 9.7 Composing for a different branch
318 318
 RPM-OSTree makes it very easy to create and update new branches, by composing using json config files that include the Refspec as the new branch name, the list of packages and the other settings we are now familiar with.  Photon OS 2.0 RPM-OSTRee Server installer adds two extra files photon-minimal.json and photon-full.json in addition to photon-base.json, that correspond almost identically to the minimal and full profiles installed via tdnf. It also makes 'photon-base' a smaller set of starter branch.  
319
-Of course, you can create your own config files for your branches with desired lists of packages. You may compose on top of the existing tree, or you can [[start fresh your own OSTRee repo|Photon-RPM-OSTree:-8-File-oriented-server-operations#81-starting-a-fresh-ostree-repo]], using your own customized versioning.
320
-
321
-
322
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-8-File-oriented-server-operations]]  | [[Next page >|Photon RPM-OSTree:-10-Remotes]]
323 319
\ No newline at end of file
320
+Of course, you can create your own config files for your branches with desired lists of packages. You may compose on top of the existing tree, or you can [start fresh your own OSTRee repo](Photon-RPM-OSTree-8-File-oriented-server-operations.md#81-starting-a-fresh-ostree-repo), using your own customized versioning.
... ...
@@ -1,4 +1,6 @@
1
-### Photon 1.0 GA: systemd-networkd and systemd-resolved not starting in the updated image, on reboot
1
+# Appendix
2
+
3
+## Photon 1.0 GA: systemd-networkd and systemd-resolved not starting in the updated image, on reboot
2 4
 This issue has been fixed in 1.0 Revision 2 and above.
3 5
 If you compose a custom image at the server, download at the RPM-OSTree host the updated image and reboot, systemd-networkd may report an access denied error, in which case your network interface is not properly configured, and ifconfig will not list an external IP address. This is a bug that was discovered very late and we didn't have time to address it for Photon 1.0. The easy workaround is to temporary relax the server permissions before  composing the tree (image) and revert back to the secure umask after that. Here are the steps to recover, that work even after you've already composed a "bad" image and some hosts have downloaded and booted into it:  
4 6
 At server:  
... ...
@@ -11,7 +13,7 @@ At every host that booted into the bad image, from console:
11 11
   2. Login after reboot, then execute **rpm-ostree upgrade** to download the new, good image from server. It's going to skip the bad image version.  
12 12
   3. Reboot into new good image and execute ifconfig, notice you now have an external IP address. Also, your host will have the recommended secure umask 0027 set.
13 13
  
14
-### OSTree repo is no longer accessible via http after RPM-OSTree server has updated httpd package
14
+## OSTree repo is no longer accessible via http after RPM-OSTree server has updated httpd package
15 15
 If server itself is updated via tdnf that brings a newer version of httpd package, httpd.service file will be overwritten to a default value (not valid for OSTree repo), and hosts trying to install or upgrade will report an "invalid or missing config".  To fix the problem:  
16 16
 
17 17
 * Replace the content of /usr/lib/systemd/system/httpd.service with:
... ...
@@ -34,18 +36,17 @@ WantedBy=multi-user.target
34 34
 * systemctl daemon-reload
35 35
 * systemctl restart httpd
36 36
 
37
-### Error composing when photon-iso repo is selected
37
+## Error composing when photon-iso repo is selected
38 38
 If you are doing the trick explained in 9.3 to speed up composing by getting the RPMS from cdrom instead of the online repo, you may encounter an **error: cache too old:**. We are investigating - it could be an rpm-ostree bug or some incompatibility between the caching in tdnf vs. libhif used by ostree, but meanwhile just leave **"repos": ["photon"],** in photon-base.json.  
39 39
   
40
-### Package differences between RPM-OSTree "minimal" and minimal installation profile
40
+## Package differences between RPM-OSTree "minimal" and minimal installation profile
41 41
 This is not an actual issue, I'm only mentioning because of naming - people may expect that installing an RPM-OSTree host using the **photon/1.0/x86_64/minimal** reftag will create an exact equivalent, albeit read-only replica of the Photon minimal, when in fact you get fewer packages. That is because we were constrained by size of the starter ostree repo included on the cdrom, needed in order to install fast the server and the default host, yet still small enough for the ISO installer to run in 384 MB RAM in Fusion and Workstation, 512 MB in ESX.
42 42
 
43 43
 That's easy to overcome - just add the wanted package names in the photon-base.json and re-compose the tree.
44 44
 
45 45
 
46 46
 
47
-### Manual pages not included for installed packages
47
+## Manual pages not included for installed packages
48 48
 The packages in photon-base.json don't have their manual pages installed. This is for the same reason - keep the cdrom included ostree repo size small. If the manual pages are desired, just change to true the **documentation** setting in photon-base.json and re-compose.
49 49
 
50 50
 
51
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0]]
... ...
@@ -1,28 +1,30 @@
1
+# Install or rebase to Photon OS 2.0
2
+
1 3
 Photon OS 2.0 release has a different focus and while it provides full RPM-OSTree functionality (updated to 2017), it lets the user drive it, rather than provide a pre-defined solution as part of the installation.  
2 4
 
3 5
 The number of packages included in the RPMS repo in Photon OS 2.0 increased significantly, compared to 1.0. To keep the ISO at reasonable size, Photon OS 2.0 no longer includes the compressed ostree.repo file, that helped optimize both the server and host install in 1.0 or 1.0 Rev2. That decision affected the OSTree features we ship out of the box. Customer could achieve the same results by several additional simple steps, that will be explained in this chapter. In addition, there is a new way to create a host raw image at server.
4 6
 
5
-### 12.1 Installing an RPM-OSTree server
7
+## 12.1 Installing an RPM-OSTree server
6 8
 Photon OS 2.0 installer contains an option to install an OSTree server, just like Photon 1.0 OS does. It will not run, however, the server 'compose tree' as part of installation, as most users will want to start from scratch to create their own image anyway, using different package set and customized settings.
7
-In addition to starter photon-base.json, we provide photon-minimal.json and photon-full.json, updated with a 2.0 Refspec. We still fire up an Apache web server, that will point to an empty site initially at the repo directory. Assuming you've customized photon-base.json to you liking, all you need to do is to run the commands you are already familiar with from [[Chapter 9|Photon-RPM-OSTree:-9-Package-oriented-server-operations]].
9
+In addition to starter photon-base.json, we provide photon-minimal.json and photon-full.json, updated with a 2.0 Refspec. We still fire up an Apache web server, that will point to an empty site initially at the repo directory. Assuming you've customized photon-base.json to you liking, all you need to do is to run the commands you are already familiar with from [Chapter 9](Photon-RPM-OSTree-9-Package-oriented-server-operations.md).
8 10
 ```
9 11
 root [ /srv/rpm-ostree ]# ostree --repo=repo init --mode=archive-z2
10 12
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
11 13
 ```
12 14
 Now if you point a browser to http://<server_IP_address>, you should see the familiar directory structure of an OSTree repo.
13 15
 
14
-### 12.2 Installing an RPM-OSTree host
16
+## 12.2 Installing an RPM-OSTree host
15 17
 Photon OS 2.0 installer no longer includes a UI option to deploy a host manually - either against a default or a custom server repo, and also there is no official online Photon OS 2.0 OSTree repo published. This is now completely customer driven.  
16
-Automated host install is supported, as explained in [[Chapter 7.2 Automated install of a custom host via kickstart|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository#72-automated-install-of-a-custom-host-via-kickstart]].  
18
+Automated host install is supported, as explained in [Chapter 7.2 Automated install of a custom host via kickstart](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md#72-automated-install-of-a-custom-host-via-kickstart).  
17 19
 
18
-### 12.3 Rebasing a host from Photon 1.0 to 2.0
20
+## 12.3 Rebasing a host from Photon 1.0 to 2.0
19 21
 If kickstart sounds too complicated and we still want to go the UI way like in 1.0, fortunately, there is a workaround that requires an extra step. Also, if you have an installed Photon 1.0 or 1.0 Rev2 that you want to carry to 2.0, you need to rebase it. Notice that I didn't say "upgrade".   
20 22
 
21 23
 Basically the OSTree repo will switch to a different branch on a different server, following the new server's branch versioning scheme. The net result is that the lots of packages will get changed to newer versions from newer OSTree repo, that has been composed from a newer Photon OS 2.0 RPMS repo. Again, I didn't say "upgraded", neither the rebase command output, that lists "changed" packages. Some obsolete packages will be removed, new packages will be added, either because they didn't exist in 1.0 repo, or because the new config file includes them.  
22 24
 The OS name is the same (Photon), so the content in /var and /etc will be transferred over.  
23 25
 
24
-1. To install fresh, deploy a Photon 1.0 Rev2 host default, as described in [[Chapter 2|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]]. Of course, if you already have an existing Photon OS 1.0 host that you want to move to 2.0, skip this step.
25
-2. Edit /ostree/repo/config and substitute the url, providing the IP address for the Photon OS 2.0 RPM-OSTree server installed above. This was explained in [[Chapter 10|Photon-RPM-OSTree:-10-Remotes#102-switching-repositories]].  
26
+1. To install fresh, deploy a Photon 1.0 Rev2 host default, as described in [Chapter 2](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md). Of course, if you already have an existing Photon OS 1.0 host that you want to move to 2.0, skip this step.
27
+2. Edit /ostree/repo/config and substitute the url, providing the IP address for the Photon OS 2.0 RPM-OSTree server installed above. This was explained in [Chapter 10](Photon-RPM-OSTree-10-Remotes.md#102-switching-repositories).  
26 28
 ostree should confirm that is the updated server IP for the "photon" remote.
27 29
 ```
28 30
 root@ostree-host [ ~ ]# ostree remote show-url photon
... ...
@@ -186,7 +188,6 @@ Deployments:
186 186
 
187 187
 There are some side effects of installing Photon OS 2.0 based on the skeleton of a 1.0. For one, the custom disk partitioning is not available in 1.0. There could be others, I cannot think of now.
188 188
 
189
-### 12.4 Creating a host raw image
189
+## 12.4 Creating a host raw image
190 190
 It is now possible to run at server a script that is part of RPM-OStree package, to create a host raw mage.
191 191
 
192
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images]] | [[ Next page >|Photon-RPM-OSTree:-Appendix-A:-Known-issues]]
193 192
deleted file mode 100644
... ...
@@ -1,18 +0,0 @@
1
-To my knowledge, this is the first online documentation that exposes the secrets of RPM-OSTree in a practical manner, with code examples at every step of the way.   
2
-
3
-While it started as a set of Wiki pages on this topic, it ended up in some sort of a mini online book, taking the reader from theoretical concepts to practical samples, from simple to complex, in a progressive way. I've tried as much as I can not to duplicate information that is already available at the [OSTree official site](https://wiki.gnome.org/Projects/OSTree), limiting to only how much is needed to understand the practical examples.
4
-
5
-I wrote this mini-book from my own notes, based on my own experiments with this technology and working with my counter-part developer for the feature. It was necessary to understand how RPM-OSTree works in order to prepare test cases for its Photon application, even though public documentation is very sparse and sample code was almost non-existent. We've set the ambitious goal to make it work in Photon OS Technology Preview 2, which has been unveiled at VMWorld 2015 in San Francisco, along with a suite of other products in the same family.  
6
-
7
-Many thanks to Touseef Liaqat, the main developer who wrote the Photon / RPM-OSTree integration code. Also, many thanks to the people (whom I never met) who designed this cool technology. 
8
-
9
-Except for some school project and my short stint at Amazon, I have not developed much in Linux. I've worked for Microsoft for over 13 years, where in the old days just pronouncing "Linux" or "open source" was sure to [make some people uncomfortable](http://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/). Now things have changed even over there.  
10
-
11
-I just turned two months ... of employment with VMware and I'm part of a team that puts together a Linux distribution built from scratch.  It's been awesome so far!
12
-
13
-Should you have any question, comments, suggestions, technical and language corrections (well, my first language is not English), please write to me at [dmoraru@vmware.com](mailto:dmoraru@vmware.com) or [danutm@msn.com](mailto:danutm@msn.com). 
14
-
15
-Danut Moraru - August 31th, 2015  
16
-Bellevue, WA  
17
-
18
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-a-simple-guide]] | [[ Next page >|Photon-RPM-OSTree:-1-Introduction]]
19 1
\ No newline at end of file
... ...
@@ -1,83 +1,80 @@
1
-Contents  
1
+# Photon RPM OSTree: a simple guide
2
+
3
+## Contents  
2 4
 ***
3 5
 
4
-   [[Preface|Photon-RPM-OSTree:-Preface]]  
5 6
 
6
-1. [[Introduction|Photon RPM-OSTree:-1-Introduction]]  
7
-1.1 [[What is OSTree? How about RPM-OSTree?|Photon RPM-OSTree:-1-Introduction#11-what-is-ostree-how-about-rpm-ostree]]  
8
-1.2 [[Why use RPM-OSTree in Photon?|Photon RPM-OSTree:-1-Introduction#12-why-use-rpm-ostree-in-photon]]  
9
-1.3 [[Photon with RPM-OSTree installation profiles|Photon RPM-OSTree:-1-Introduction#13-photon-with-rpm-ostree-installation-profiles]]  
10
-1.4 [[Terminology|Photon RPM-OSTree:-1-Introduction#14-terminology]]  
11
-1.5 [[Sample code|Photon RPM-OSTree:-1-Introduction#15-sample-code]]  
12
-1.6 [[How to read this book|Photon-RPM-OSTree:-1-Introduction#16-how-to-read-this-book]]  
13
-1.7 [[RPM-OSTree in Photon OS 2.0|Photon-RPM-OSTree:-1-Introduction#17-rpm-ostree-in-photon-os-20]]  
14
-2. [[Installing a Photon RPM-OSTree host against default server repository|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]]  
15
-2.1 [[Who is this for?|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository#21-who-is-this-for]]  
16
-2.2 [[Installing the ISO, step by step|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository#22-installing-the-iso-step-by-step]]
17
-3. [[Concepts in action|Photon-RPM-OStree:-3-Concepts-in-action]]  
18
-3.1 [[Querying the deployed filetrees|Photon-RPM-OStree:-3-Concepts-in-action#31-querying-the-deployed-filetrees]]  
19
-3.2 [[Bootable filetree version|Photon-RPM-OStree:-3-Concepts-in-action#32-bootable-filetree-version]]  
20
-3.3 [[Commit ID|Photon-RPM-OStree:-3-Concepts-in-action#33-commit-id]]  
21
-3.4 [[OSname|Photon-RPM-OStree:-3-Concepts-in-action#34-osname]]  
22
-3.5 [[Refspec|Photon-RPM-OStree:-3-Concepts-in-action#35-refspec]]  
23
-3.6 [[Deployments|Photon-RPM-OStree:-3-Concepts-in-action#36-deployments]]
24
-4. [[Querying for commit, file and package metadata|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata]]  
25
-4.1 [[Commit history|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#41-commit-history]]  
26
-4.2 [[Listing file mappings|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#42-listing-file-mappings]]  
27
-4.3 [[Listing configuration changes|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#43-listing-configuration-changes]]  
28
-4.4 [[Listing packages|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#44-listing-packages]]  
29
-4.5 [[Querying for package details|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#45-querying-for-package-details]]  
30
-4.6 [[Why am I unable to install, update or delete packages?|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata#46-why-am-i-unable-to-install-update-or-delete-packages]]  
31
-5. [[Host updating operations|Photon-RPM-OSTree:-5-Host-updating-operations]]  
32
-5.1 [[Is it an update or an upgrade?|Photon-RPM-OSTree:-5-Host-updating-operations#51-is-it-an-update-or-an-upgrade]]  
33
-5.2 [[Incremental upgrade|Photon-RPM-OSTree:-5-Host-updating-operations#52-incremental-upgrade]]  
34
-5.3 [[Listing file differences|Photon-RPM-OSTree:-5-Host-updating-operations#52-listing-file-differences]]  
35
-5.4 [[Listing package differences|Photon-RPM-OSTree:-5-Host-updating-operations#52-listing-package-differences]]  
36
-5.5 [[Rollback|Photon-RPM-OSTree:-5-Host-updating-operations#55-rollback]]  
37
-5.6 [[Deleting a deployed filetree|Photon-RPM-OSTree:-5-Host-updating-operations#56-deleting-a-deployed-filetree]]  
38
-5.7 [[Version skipping upgrade|Photon-RPM-OSTree:-5-Host-updating-operations#57-version-skipping-upgrade]]  
39
-5.8 [[Tracking parent commits|Photon-RPM-OSTree:-5-Host-updating-operations#58-tracking-parent-commits]]  
40
-5.9 [[Resetting a branch to a previous commit|Photon-RPM-OSTree:-5-Host-updating-operations#59-resetting-a-branch-to-a-previous-commit]]  
41
-6. [[Installing a Photon RPM-OSTree server|Photon-RPM-OSTree:-6-Installing-a-server]]  
42
-7. [[Installing a Photon RPM-OStree host against a custom server repository|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository]]  
43
-7.1 [[Manual install of a custom host|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository#71-manual-install-of-a-custom-host]]  
44
-7.2 [[Automated install of a custom host via kickstart|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository#72-automated-install-of-a-custom-host-via-kickstart]]  
45
-8. [[File oriented server operations|Photon-RPM-OSTree:-8-File-oriented-server-operations]]  
46
-8.1 [[Starting a fresh OSTree repo|Photon-RPM-OSTree:-8-File-oriented-server-operations#81-starting-a-fresh-ostree-repo]]  
47
-8.2 [[Checking out a filetree|Photon-RPM-OSTree:-8-File-oriented-server-operations#82-checking-out-a-filetree]]  
48
-8.3 [[Committing changes to a filetree|Photon-RPM-OSTree:-8-File-oriented-server-operations#83-committing-changes-to-a-filetree]]  
49
-8.4 [[Downloading the changes at the host|Photon-RPM-OSTree:-8-File-oriented-server-operations#84-downloading-the-changes-at-the-host]]  
50
-8.5 [[Creating summary metadata|Photon-RPM-OSTree:-8-File-oriented-server-operations#85-creating-summary-metadata]]  
51
-9. [[Package oriented server operations|Photon-RPM-OSTree:-9-Package-oriented-server-operations]]  
52
-9.1 [[JSON configuration file|Photon-RPM-OSTree:-9-Package-oriented-server-operations#91-json-configuration-file]]  
53
-9.2 [[Package addition, removal, upgrade|Photon-RPM-OSTree:-9-Package-oriented-server-operations#92-package-addition-removal-upgrade]]  
54
-9.3 [[RPMS repository|Photon-RPM-OSTree:-9-Package-oriented-server-operations#93-rpms-repository]]  
55
-9.4 [[Composing a tree|Photon-RPM-OSTree:-9-Package-oriented-server-operations#94-composing-a-tree]]  
56
-9.5 [[Automatic version prefix|Photon-RPM-OSTree:-9-Package-oriented-server-operations#95-automatic-version-prefix]]  
57
-9.6 [[Installing package updates|Photon-RPM-OSTree:-9-Package-oriented-server-operations#96-installing-package-updates]]  
58
-9.7 [[Creating server metadata|Photon-RPM-OSTree:-9-Package-oriented-server-operations#97-creating-server-metadata]]  
59
-9.8 [[Starting a fresh OSTree repo|Photon-RPM-OSTree:-9-Package-oriented-server-operations#98-starting-a-fresh-ostree-repo]]  
60
-10. [[Remotes|Photon RPM-OSTree:-10-Remotes]]  
61
-10.1 [[Listing remotes|Photon-RPM-OSTree:-10-Remotes#101-listing-remotes]]  
62
-10.2 [[GPG signature verification|Photon-RPM-OSTree:-10-Remotes#102-gpg-signature-verification]]  
63
-10.3 [[Switching repositories|Photon-RPM-OSTree:-10-Remotes#103-switching-repositories]]  
64
-10.4 [[Adding and removing remotes|Photon-RPM-OSTree:-10-Remotes#104-adding-and-removing-remotes]]  
65
-10.5 [[List available branches|Photon-RPM-OSTree:-10-Remotes#105-list-available-branches]]  
66
-11. [[Running container applications between bootable images|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images]]  
67
-11.1 [[Downloading a docker container appliance|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images#111-downloading-a-docker-container-appliance]]  
68
-11.2 [[Rebooting into an existing image|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images#112-rebooting-into-an-existing-image]]  
69
-11.3 [[Reboot into a newly created image|Photon-RPM-OSTree:-11-Running-container-applications-between-bootable-images#113-reboot-into-a-newly-created-image]]  
70
-12. [[Install or rebase to Photon OS 2.0|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0]]  
71
-12.1 [[Installing an RPM-OSTree server|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0#121-installing-an-rpm-ostree-server]]  
72
-12.2 [[Installing an RPM-OSTree host|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0#122-installing-an-rpm-ostree-host]]  
73
-12.3 [[Rebasing a host from Photon 1.0 to 2.0|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0#123-rebasing-a-host-from-photon-10-to-20]]  
74
-12.4 [[Creating a host raw image|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0#124-creating-a-host-raw-image]]    
7
+1. [Introduction](Photon-RPM-OSTree-1-Introduction.md)  
8
+  1. [What is OSTree? How about RPM-OSTree?](Photon-RPM-OSTree-1-Introduction.md#11-what-is-ostree-how-about-rpm-ostree)
9
+  1. [Why use RPM-OSTree in Photon?](Photon-RPM-OSTree-1-Introduction.md#12-why-use-rpm-ostree-in-photon)
10
+  1. [Photon with RPM-OSTree installation profiles](Photon-RPM-OSTree-1-Introduction.md#13-photon-with-rpm-ostree-installation-profiles)
11
+  1. [Terminology](Photon-RPM-OSTree-1-Introduction.md#14-terminology)
12
+  1. [Sample code](Photon-RPM-OSTree-1-Introduction.md#15-sample-code)
13
+  1. [How to read this book](Photon-RPM-OSTree:-1-Introduction#16-how-to-read-this-book)
14
+  1. [RPM-OSTree in Photon OS 2.0](Photon-RPM-OSTree:-1-Introduction#17-rpm-ostree-in-photon-os-20)
15
+2. [Installing a Photon RPM-OSTree host against default server repository](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md)  
16
+    1. [Who is this for?](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md#21-who-is-this-for)
17
+    1. [Installing the ISO, step by step](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md#22-installing-the-iso-step-by-step)
18
+3. [Concepts in action](Photon-RPM-OStree-3-Concepts-in-action.md)  
19
+    1. [Querying the deployed filetrees](Photon-RPM-OStree-3-Concepts-in-action.md#31-querying-the-deployed-filetrees)
20
+    1. [Bootable filetree version](Photon-RPM-OStree-3-Concepts-in-action.md#32-bootable-filetree-version)
21
+    1. [Commit ID](Photon-RPM-OStree-3-Concepts-in-action.md#33-commit-id)
22
+    1. [OSname](Photon-RPM-OStree-3-Concepts-in-action.md#34-osname)
23
+    1. [Refspec](Photon-RPM-OStree-3-Concepts-in-action.md#35-refspec)
24
+    1. [Deployments](Photon-RPM-OStree-3-Concepts-in-action.md#36-deployments)
25
+4. [Querying for commit, file and package metadata](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md)  
26
+    1. [Commit history](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#41-commit-history)
27
+    1. [Listing file mappings](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#42-listing-file-mappings)
28
+    1. [Listing configuration changes](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#43-listing-configuration-changes)
29
+    1. [Listing packages](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#44-listing-packages)
30
+    1. [Querying for package details](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#45-querying-for-package-details)
31
+    1. [Why am I unable to install, update or delete packages?](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#46-why-am-i-unable-to-install-update-or-delete-packages)
32
+5. [Host updating operations](Photon-RPM-OSTree-5-Host-updating-operations.md)  
33
+    1. [Is it an update or an upgrade?](Photon-RPM-OSTree-5-Host-updating-operations.md#51-is-it-an-update-or-an-upgrade)
34
+    1. [Incremental upgrade](Photon-RPM-OSTree-5-Host-updating-operations.md#52-incremental-upgrade)
35
+    1. [Listing file differences](Photon-RPM-OSTree-5-Host-updating-operations.md#52-listing-file-differences)
36
+    1. [Listing package differences](Photon-RPM-OSTree-5-Host-updating-operations.md#52-listing-package-differences)
37
+    1. [Rollback](Photon-RPM-OSTree-5-Host-updating-operations.md#55-rollback)
38
+    1. [Deleting a deployed filetree](Photon-RPM-OSTree-5-Host-updating-operations.md#56-deleting-a-deployed-filetree)
39
+    1. [Version skipping upgrade](Photon-RPM-OSTree-5-Host-updating-operations.md#57-version-skipping-upgrade)
40
+    1. [Tracking parent commits](Photon-RPM-OSTree-5-Host-updating-operations.md#58-tracking-parent-commits)
41
+    1. [Resetting a branch to a previous commit](Photon-RPM-OSTree-5-Host-updating-operations.md#59-resetting-a-branch-to-a-previous-commit)
42
+6. [Installing a Photon RPM-OSTree server](Photon-RPM-OSTree-6-Installing-a-server.md)  
43
+7. [Installing a Photon RPM-OStree host against a custom server repository](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md)  
44
+    1. [Manual install of a custom host](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md#71-manual-install-of-a-custom-host)
45
+    1. [Automated install of a custom host via kickstart](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md#72-automated-install-of-a-custom-host-via-kickstart)
46
+8. [File oriented server operations](Photon-RPM-OStree-8-File-oriented-server-operations.md)
47
+    1. [Starting a fresh OSTree repo](Photon-RPM-OStree-8-File-oriented-server-operations.md#81-starting-a-fresh-ostree-repo)
48
+    1. [Checking out a filetree](Photon-RPM-OStree-8-File-oriented-server-operations.md#82-checking-out-a-filetree)
49
+    1. [Committing changes to a filetree](Photon-RPM-OStree-8-File-oriented-server-operations.md#83-committing-changes-to-a-filetree)
50
+    1. [Downloading the changes at the host](Photon-RPM-OStree-8-File-oriented-server-operations.md#84-downloading-the-changes-at-the-host)
51
+    1. [Creating summary metadata](Photon-RPM-OStree-8-File-oriented-server-operations.md#85-creating-summary-metadata)
52
+9. [Package oriented server operations](Photon-RPM-OSTree-9-Package-oriented-server-operations.md)  
53
+    1. [JSON configuration file](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#91-json-configuration-file)
54
+    1. [Package addition, removal, upgrade](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#92-package-addition-removal-upgrade)
55
+    1. [RPMS repository](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#93-rpms-repository)
56
+    1. [Composing a tree](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#94-composing-a-tree)
57
+    1. [Automatic version prefix](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#95-automatic-version-prefix)
58
+    1. [Installing package updates](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#96-installing-package-updates)
59
+    1. [Creating server metadata](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#97-creating-server-metadata)
60
+    1. [Starting a fresh OSTree repo](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#98-starting-a-fresh-ostree-repo)
61
+10. [Remotes](Photon-RPM-OSTree-10-Remotes.md)  
62
+    1. [Listing remotes](Photon-RPM-OSTree-10-Remotes.md#101-listing-remotes)
63
+    1. [GPG signature verification](Photon-RPM-OSTree-10-Remotes.md#102-gpg-signature-verification)
64
+    1. [Switching repositories](Photon-RPM-OSTree-10-Remotes.md#103-switching-repositories)
65
+    1. [Adding and removing remotes](Photon-RPM-OSTree-10-Remotes.md#104-adding-and-removing-remotes)
66
+    1. [List available branches](Photon-RPM-OSTree-10-Remotes.md#105-list-available-branches)
67
+11. [Running container applications between bootable images](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md)  
68
+    1. [Downloading a docker container appliance](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#111-downloading-a-docker-container-appliance)
69
+    1. [Rebooting into an existing image](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#112-rebooting-into-an-existing-image)
70
+    1. [Reboot into a newly created image](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#113-reboot-into-a-newly-created-image)
71
+12. [Install or rebase to Photon OS 2.0](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md)  
72
+    1. [Installing an RPM-OSTree server](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#121-installing-an-rpm-ostree-server)
73
+    1. [Installing an RPM-OSTree host](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#122-installing-an-rpm-ostree-host)
74
+    1. [Rebasing a host from Photon 1.0 to 2.0](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#123-rebasing-a-host-from-photon-10-to-20)
75
+    1. [Creating a host raw image](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#124-creating-a-host-raw-image)
75 76
 
76
-[[Appendix A: Known issues|Photon-RPM-OSTree:-Appendix-A:-Known-issues]]  
77
+[Appendix A: Known issues](Photon-RPM-OSTree-Appendix-A-Known-issues.md)  
77 78
 
78
-***
79 79
 
80
-About the author  
81
-[Danut Moraru](mailto:dmoraru@vmware.com) is a Senior Software Design Engineer in the Photon OS Development team.  
82 80
 
83
-[[Next page >|Photon-RPM-OSTree:-Preface]]
84 81
\ No newline at end of file
... ...
@@ -1,16 +1,17 @@
1
+# Concepts in Action
1 2
 
2 3
 Now that we have a fresh installed host (either as [[default|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]] or [[custom|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository]]), I can explain better the OStree concepts and see them in action.  
3
-### 3.1 Querying the deployed filetrees
4
+## 3.1 Querying the deployed filetrees
4 5
 The first thing to do is to run a command that tells us what is installed on the machine and when. Since it's a fresh install from the CD, there is only one bootable filetree image deployed.
5 6
 ``` 
6 7
 root@photon-host [ ~ ]# rpm-ostree status
7 8
   TIMESTAMP (UTC)       VERSION       ID           OSNAME  REFSPEC               
8 9
 * 2016-06-07 14:06:17   1.0_minimal   56ef687f13   photon  photon:photon/1.0/x86_64/minimal
9 10
 ```  
10
-### 3.2 Bootable filetree version
11
+## 3.2 Bootable filetree version
11 12
 **1.0_minimal** is not the Linux Photon OS release version, nor daily build, but rather a human readable, self-incrementing version associated with every commit that brings file/package updates. Think of this as version 0. The following versions are going to be 1.0_minimal.1, 1.0_minimal.2, 1.0_minimal.3 and so on.
12 13
 
13
-### 3.3 Commit ID
14
+## 3.3 Commit ID
14 15
 The ID listed is actually the first 5 bytes (10 hex digits) of the commit hash. If you want to see the entire 32 bytes hex number, just add the 'pretty' formatting option. The .0 at the end means that this is the default bootable deployment. This will change to 1 when another deployment will take its place as the default.
15 16
 ```
16 17
 root@photon-host [ ~ ]# rpm-ostree status -p
... ...
@@ -24,11 +25,11 @@ root@photon-host [ ~ ]# rpm-ostree status -p
24 24
   refspec    photon:photon/1.0/x86_64/minimal
25 25
 ============================================================
26 26
 ```
27
-### 3.4 OSname
27
+## 3.4 OSname
28 28
 The OS Name identifies the operating system installed. All bootable filetrees for the same OS will share the /var directory, in other words applications installed in one booted image into this directory will be available in all other images.  
29 29
 If a new set of images are created for a different OS, they will receive a fresh copy of /var that is not shared with the previous OS images for the initial OS. In other words, if a machine is dual boot for different operating systems, they will not share each other's /var content, however they will still merge 3-way /etc.
30 30
 
31
-### 3.5 Refspec
31
+## 3.5 Refspec
32 32
 The **Refspec** is a branch inside the repo, expressed in a hierarchical way. In this case, it's the default branch that will receive package updates for the Photon OS 1.0 Minimal installation profile on Intel platforms. There could be other branches in the future, for example photon/1.0/x86_64/full that will match the Full installation profile (full set of packages installed).  
33 33
 Think of Refspec as the head of the minimal branch (just like in git) at the origin repo. On the replicated, local repo at the host, **minimal** is a file that contains the latest commit ID known for that branch.  
34 34
 ```
... ...
@@ -37,7 +38,7 @@ root@photon-host [ ~ ]# cat /ostree/repo/refs/remotes/photon/photon/1.0/x86_64/m
37 37
 ```
38 38
 Why are there two 'photon' directory levels in the remotes path? The **photon:** prefix in the Refspec listed by `rpm-ostree status` corresponds to the first **photon** directory in the remotes path and is actually the name given to the remote that the host is connected to, which points to an http or https URL. We'll talk about remotes later, but for now think of it as a namespace qualifier.  The second **photon** is part of the Refspec path itself.
39 39
 
40
-### 3.6 Deployments
40
+## 3.6 Deployments
41 41
 We've used so far `rpm-ostree`. The same information can be obtained running an `ostree` command:
42 42
 ```
43 43
 root@photon-host [ ~ ]# ostree admin status
... ...
@@ -111,6 +112,4 @@ drwxrwxrwt  4 root root 4096 Jun 12 23:04 tmp
111 111
 drwxr-xr-x 11 root root 4096 Jun  9 18:26 usrlocal
112 112
 ```
113 113
 
114
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-2-Installing-a-host-against-default-server-repository]] | [[Next page >|Photon-RPM-OSTree:-4-Querying-for-commit,-file-and-package-metadata]] 
115
-
116 114
 
... ...
@@ -1,8 +1,10 @@
1
+# File Oriented Server Operations
2
+
1 3
 In this chapter, we will checkout a filetree into a writable directory structure on disk, make several file changes and commit the changes back into the repository. Then we will download this commit and apply at the host. As you may have guessed, this chapter is mostly about OSTree - the base technology. I've not mentioned anything about packages, although it is quite possible to install packages (afler all, packages are made of files, right?) and commit without the help of rpm-ostree, but it's too much of a headache and not worth the effort, since rpm-ostree does it simpler and better.  
2 4
 
3 5
 When would you want to do that? When you want for all your hosts to get an application or configuration customization that is not encapsulated as part of a package upgrade.
4 6
 
5
-### 8.1 Starting a fresh OSTree repo  
7
+## 8.1 Starting a fresh OSTree repo  
6 8
 If you want to start fresh with your own branch and/or versioning scheme, you can delete the OSTree repo created during the Photon 1.0 RPM-OSTree server install and re-create it empty. For Photon OS 2.0 RPM-OSTree, this is a required step, as the installer will not create an OSTree repo for you, as you can see in 12.1.  
7 9
 ```
8 10
 root [ /srv/rpm-ostree ]# rm -rf repo
... ...
@@ -18,20 +20,18 @@ repo_version=1
18 18
 mode=archive-z2
19 19
 ```
20 20
 
21
-### 8.2 Checking out a filetree
21
+## 8.2 Checking out a filetree
22 22
 [content to be added]
23 23
 
24
-### 8.3 Committing changes to a filetree
24
+## 8.3 Committing changes to a filetree
25 25
 [content to be added]
26 26
 
27
-### 8.4 Downloading the changes at the host
27
+## 8.4 Downloading the changes at the host
28 28
 [content to be added]
29 29
 
30
-### 8.5 Creating summary metadata
30
+## 8.5 Creating summary metadata
31 31
 A newer ostree feature, available in Photon OS 2.0 and higher, allows the OSTree server admin to create server summary metadata, that includes among other things the list of available branches and the list of static deltas, so they could be discovered by hosts. To create a summary, run this command after you committed for your branches:
32 32
 ```
33 33
 root [ /srv/rpm-ostree ]# ostree summary -u "This is BigData's OSTree server, it has three branches"
34 34
 ```  
35
-We will find out later how the [[hosts query for branches list|Photon-RPM-OSTree:-10-Remotes#105-list-available-branches]]. 
36
-
37
-[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-7-Installing-a-host-against-a-custom-server-repository]] | [[Next page >|Photon-RPM-OSTree:-9-Package-oriented-server-operations]] 
38 35
\ No newline at end of file
36
+We will find out later how the [hosts query for branches list](Photon-RPM-OSTree-10-Remotes.md#105-list-available-branches). 
39 37
new file mode 100644
... ...
@@ -0,0 +1,23 @@
0
+# Photon OS Documentation
1
+
2
+The Photon OS Documentation provides information about how to install, configure, and use VMware Photon OS&trade;.
3
+
4
+ ![PhotonOS Logo](photon-logo.png)
5
+
6
+**Product version: 1.0 and 2.0**
7
+
8
+This documentation applies to all 1.0.x and 2.0.x releases.
9
+
10
+## Intended Audiences
11
+
12
+This information is intended for Photon OS developers.
13
+
14
+----------
15
+
16
+Copyright &copy; 2016-2018 VMware, Inc. All rights reserved. [Copyright and trademark information](http://pubs.vmware.com/copyright-trademark.html). Any feedback you provide to VMware is subject to the terms at [www.vmware.com/community_terms.html](http://www.vmware.com/community_terms.html).
17
+
18
+**VMware, Inc.**<br>
19
+3401 Hillview Ave.<br>
20
+Palo Alto, CA 94304
21
+
22
+[www.vmware.com](http://www.vmware.com)
... ...
@@ -1,16 +1,16 @@
1
-**Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed**
1
+# Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed
2 2
 
3 3
 After you have a configured the Photon Management Daemon (PMD) on multiple machines, you can remotely upgrade any installed package on these machines.
4 4
 
5 5
 Upgrade process uses `copenapi_cli` that is supported from both Lightwave and Photon Management Daemon. You can initiate the upgrade process from any machine that has Photon Management Daemon installed.   
6 6
 
7
-**Prerequisites**
7
+## Prerequisites
8 8
 
9 9
 - Have an installed Lightwave server with configured domain controller on it.
10 10
 - Have installed Lightwave clients that are joined to the domain.
11 11
 - Have installed Photon Management Daemon on the clients.
12 12
 
13
-**Procedure**
13
+## Procedure
14 14
 
15 15
 1. To initiate remote upgrade, log in to a Photon OS machine over SSH to install the Photon Management Daemon CLI.
16 16
 
... ...
@@ -1,17 +1,17 @@
1
-**Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed**
1
+# Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed 
2 2
 
3 3
 After you have a configured the Photon Management Daemon on a machine, you can remotely upgrade any installed package on that machine. You can use the `root` user credentials.
4 4
 
5 5
 Upgrade process uses `pmd-cli` that is supported from both Lightwave and Photon Management Daemon. You can initiate the upgrade process from any machine that has Photon Management Daemon CLI installed.
6 6
 
7
-**Prerequisites**
7
+## Prerequisites
8 8
 
9 9
 - Have an installed Lightwave server with configured domain controller on it.
10 10
 - Have an installed Lightwave client that is joined to the domain.
11 11
 - Have an installed Photon Management Daemon on the client.
12 12
 - Have in installed Photon Management Daemon CLI (pmd-cli) on a machine from which you perform the updates.
13 13
 
14
-**Procedure**
14
+## Procedure
15 15
 
16 16
 1. To initiate remote upgrade, log in to a machine that has Photon Management Daemon CLI installed over SSH.
17 17
 2. Identify packages that can be upgraded on the client machine.
... ...
@@ -1,16 +1,16 @@
1
-**Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed**
1
+# Remotely Upgrade Multiple Photon OS Machines With Lightwave Client and Photon Management Daemon Installed
2 2
 
3 3
 After you have a configured the Photon Management Daemon (PMD) on multiple machines, you can remotely upgrade any installed package on these machines.
4 4
 
5 5
 Upgrade process uses `copenapi_cli` that is supported from both Lightwave and Photon Management Daemon. You can initiate the upgrade process from any machine that has Photon Management Daemon installed.   
6 6
 
7
-**Prerequisites**
7
+## Prerequisites
8 8
 
9 9
 - Have an installed Lightwave server with configured domain controller on it.
10 10
 - Have installed Lightwave clients that are joined to the domain.
11 11
 - Have installed Photon Management Daemon on the clients.
12 12
 
13
-**Procedure**
13
+## Procedure
14 14
 
15 15
 1. To initiate remote upgrade, log in to a Photon OS machine over SSH to install the Photon Management Daemon CLI.
16 16
 
... ...
@@ -1,17 +1,17 @@
1
-**Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed**
1
+## Remotely Upgrade a Single Photon OS Machine With Lightwave Client and Photon Management Daemon Installed
2 2
 
3 3
 After you have a configured the Photon Management Daemon on a machine, you can remotely upgrade any installed package on that machine. You can use the `root` user credentials.
4 4
 
5 5
 Upgrade process uses `pmd-cli` that is supported from both Lightwave and Photon Management Daemon. You can initiate the upgrade process from any machine that has Photon Management Daemon CLI installed.
6 6
 
7
-**Prerequisites**
7
+## Prerequisites
8 8
 
9 9
 - Have an installed Lightwave server with configured domain controller on it.
10 10
 - Have an installed Lightwave client that is joined to the domain.
11 11
 - Have an installed Photon Management Daemon on the client.
12 12
 - Have in installed Photon Management Daemon CLI (pmd-cli) on a machine from which you perform the updates.
13 13
 
14
-**Procedure**
14
+## Procedure
15 15
 
16 16
 1. To initiate remote upgrade, log in to a machine that has Photon Management Daemon CLI installed over SSH.
17 17
 2. Identify packages that can be upgraded on the client machine.
... ...
@@ -1,7 +1,9 @@
1
+# Running Photon OS on Amazon Elastic Cloud Compute
2
+
1 3
 This guide describes how to get Photon OS up and running on Amazon Web Services Elastic Cloud Compute (EC2), customize Photon with cloud-init, connect to it with SSH, and run a containerized application.
2 4
  
3 5
 ## About Photon OS?
4

                
6
+Photon OS™ is an open source Linux container host optimized for cloud-native applications, cloud platforms, and VMware infrastructure. Photon OS provides a secure run-time environment for efficiently running containers. For an overview, see [https://vmware.github.io/photon/](#https://vmware.github.io/photon/).
5 7
 
6 8
 ## Prerequisites
7 9
 
... ...
@@ -17,7 +19,7 @@ This article uses an Ubuntu 14.04 workstation to generate the keys and certifica
17 17
 
18 18
 VMware packages Photon OS as a cloud-ready Amazon machine image (AMI) that you can download for free from [Bintray](https://bintray.com/vmware/photon).
19 19
 
20
-Download the Photon OS AMI now and save it on your workstation. For instructions, see [Downloading Photon OS](#https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
20
+Download the Photon OS AMI now and save it on your workstation. For instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
21 21
 
22 22
 **Note**: The AMI version of Photon is a virtual appliance with the information and packages that Amazon needs to launch an instance of Photon in the cloud. To build the AMI version, VMware starts with the minimal version of Photon OS and adds the sudo and tar packages to it. 
23 23
 
... ...
@@ -29,7 +29,7 @@ You can download the Photon OS image for GCE from the following URL:
29 29
 
30 30
 [https://bintray.com/vmware/photon](https://bintray.com/vmware/photon)
31 31
 
32
-For instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
32
+For instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
33 33
 
34 34
 # Installing Photon OS on Google Compute Engine
35 35
 
... ...
@@ -22,7 +22,7 @@ Photon OS™ is an open source Linux container host optimized for cloud-native a
22 22
 
23 23
 # Downloading and Extracting the Photon OS VHD File
24 24
 
25
-VMware packages Photon OS as a cloud-ready virtual hard disk (VHD file) that you can download for free from  [Bintray](https://bintray.com/vmware/photon). This VHD file is a virtual appliance with the information and packages that Azure needs to launch an instance of Photon in the cloud. After you have downloaded the distribution archive, extract the VHD file from it. You will later need to upload this VHD file to Azure, where it will be stored in an Azure storage account. For download instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
25
+VMware packages Photon OS as a cloud-ready virtual hard disk (VHD file) that you can download for free from  [Bintray](https://bintray.com/vmware/photon). This VHD file is a virtual appliance with the information and packages that Azure needs to launch an instance of Photon in the cloud. After you have downloaded the distribution archive, extract the VHD file from it. You will later need to upload this VHD file to Azure, where it will be stored in an Azure storage account. For download instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
26 26
 
27 27
 # Setting Up Azure Storage and Uploading the VHD
28 28
 
... ...
@@ -1,3 +1,5 @@
1
+# Running Photon OS on Workstation 
2
+
1 3
 This guide describes how to get started using Photon OS as a virtual machine within VMware Workstation. It provides instructions for downloading Photon OS (as an OVA or ISO file), describes the various installation options, and walks through the steps of installing the Photon OS distribution on Workstation. Once Photon OS is installed, this document shows how to deploy a containerized application in Docker with a single command.
2 4
 
3 5
 - [About Photon OS](#about-photon-os)
... ...
@@ -9,11 +11,11 @@ This guide describes how to get started using Photon OS as a virtual machine wit
9 9
 - [Deploying a Containerized Application in Photon OS](#deploying-a-containerized-application-in-photon-os)
10 10
 - [Installing Photon OS 1.0](#installing-photon-os-10)
11 11
 
12
-**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](https://github.com/vmware/photon/wiki/Upgrading-to-Photon-OS-2.0). 
12
+**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md). 
13 13
 
14 14
 # About Photon OS
15 15
 
16

                
16
+Photon OS™ is an open source Linux container host optimized for cloud-native applications, cloud platforms, and VMware infrastructure. Photon OS provides a secure run-time environment for efficiently running containers. For an overview, see  [https://vmware.github.io/photon/](https://vmware.github.io/photon/).
17 17
 
18 18
 # Requirements
19 19
 
... ...
@@ -47,7 +49,7 @@ Once you&#39;ve decided which way to install, you&#39;ll need to download the co
47 47
 
48 48
 [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/)
49 49
 
50
-For instructions, see  [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
50
+For instructions, see  [Downloading Photon OS](Downloading-Photon-OS.md).
51 51
 
52 52
 # Importing the OVA for Photon OS 2.0
53 53
 
... ...
@@ -354,4 +356,4 @@ You can now run any other containerized application from Docker Hub or your own
354 354
 
355 355
 # Installing Photon OS 1.0
356 356
 
357
-Refer to the Photon OS 1.0 installation instructions in [Running Photon OS on Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion).
358 357
\ No newline at end of file
358
+Refer to the Photon OS 1.0 installation instructions in [Running Photon OS on Fusion](Running-Project-Photon-on-Fusion.md).
359 359
\ No newline at end of file
... ...
@@ -8,7 +8,7 @@ This guide describes how to get started using Photon OS as a virtual machine wit
8 8
 - [Deploying a Containerized Application in Photon OS](#deploying-a-containerized-application-in-photon-os)
9 9
 - [Installing Photon OS v1.0](#installing-photon-os-10)
10 10
 
11
-**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](https://github.com/vmware/photon/wiki/Upgrading-to-Photon-OS-2.0). 
11
+**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md). 
12 12
 
13 13
 # About Photon OS
14 14
 
... ...
@@ -44,7 +44,7 @@ Once you&#39;ve decided which way to install, you&#39;ll need to download the co
44 44
 
45 45
 [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/)
46 46
 
47
-For instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
47
+For instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
48 48
 
49 49
 **Note:** For ISO installation, you will need to upload to a datashare that is attached to the ESXi host, or mount the file share (where the ISO resides) as a data store.
50 50
 
... ...
@@ -1,3 +1,5 @@
1
+# Running Photon OS on Fusion
2
+
1 3
 This guide describes how to get started using Photon OS as a virtual machine within VMware Fusion. It provides instructions for downloading Photon OS (as an OVA or ISO file), describes the various installation options, and walks through the steps of installing the Photon OS distribution on Fusion. Once Photon OS is installed, this document shows how to deploy a containerized application in Docker with a single command.
2 4
 
3 5
 - [About Photon OS](#about-photon-os)
... ...
@@ -9,7 +11,7 @@ This guide describes how to get started using Photon OS as a virtual machine wit
9 9
 - [Deploying a Containerized Application in Photon OS](#deploying-a-containerized-application-in-photon-os)
10 10
 - [Installing Photon OS 1.0](#installing-photon-os-10)
11 11
 
12
-**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](https://github.com/vmware/photon/wiki/Upgrading-to-Photon-OS-2.0). 
12
+**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md). 
13 13
 
14 14
 # About Photon OS
15 15
 
... ...
@@ -47,7 +49,7 @@ Once you&#39;ve decided which way to install, you&#39;ll need to download the co
47 47
 
48 48
 [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/)
49 49
 
50
-For instructions, see  [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
50
+For instructions, see  [Downloading Photon OS](Downloading-Photon-OS.md).
51 51
 
52 52
 # Importing the OVA for Photon OS 2.0
53 53
 
... ...
@@ -1,24 +1,26 @@
1
+# Running Project Photon on vCloud Air
2
+
1 3
 Most of the contents are generally applicable, but some items have changed slightly. We're working through the catalog of changes. If you see something that's terribly out of sorts or incorrect, kindly either make the edit or raise an issue. Thanks - the Photon OS Team
2 4
 
3
-# What is Photon OS?
5
+## What is Photon OS?
4 6
 Photon OS is a tech preview of an open source, Linux container host runtime optimized for vSphere. Photon OS is extensible, lightweight, and supports the most common container formats including Docker, Rocket (rkt) and Garden.
5 7
 Photon OS includes a small footprint, yum-compatible, package-based lifecycle management system – called “tdnf”- and, alternatively, supports an rpm-ostree image-based system versioning.
6 8
 
7 9
 When used with development tools and environments such as VMware Fusion, VMware Workstation, HashiCorp (Vagrant and Atlas) and production runtime environment (vSphere, vCloud Air), Photon OS allows seamless migration of container based apps from development to production.  
8 10
 
9
-# Introduction
11
+## Introduction
10 12
 This document explains how to get started using Photon OS as a runtime environment for Linux containers by running Photon OS as a VM instance on vCloud Air.  This guide will provide instructions on deploying Photon OS from the vCloud Air public catalog. 
11 13
 
12 14
 Once Photon OS is installed, this guide will also provide instructions on how to demonstrate how simple it can be to deploy a containerized application with Docker and will highlight the installation of a web server simply by running one command!
13 15
 
14
-# Photon OS on vCloud Air Prerequisites
16
+## Photon OS on vCloud Air Prerequisites
15 17
 The following items are required for preparing and launching Photon OS on Google Compute Engine:
16 18
 
17 19
 * An account on vCloud Air
18 20
 
19 21
 With the TP2 release, Photon OS is published in the vCloud Air catalog. Therefore, it is no longer to download a Photon OS image before getting started. 
20 22
 
21
-# Creating a Photon OS Instance
23
+## Creating a Photon OS Instance
22 24
 Begin by logging into your vCloud Air account and selecting the Service into which you'd like to deploy your Photon OS instance. In this example, we'll use the Virtual Private Cloud OnDemand Service. 
23 25
 
24 26
 ![](https://cloud.githubusercontent.com/assets/11306358/9573923/4fdf11f4-4f76-11e5-9706-ed10437dad4d.png)
... ...
@@ -35,7 +37,7 @@ When you click the "Create your first virtual machine" button, you'll be present
35 35
  
36 36
 Before vCloud Air can create your Photon OS VM, you need to confirm the hardware configuration. The defaults presented are the recommended values; adjust as necessary to accommodate the container workloads that you expect to run in this Photon OS instance. Once you're satisfied with the hardware configuration, click "Create Virtual Machine" Once complete, you should see your powered-on Photon OS instance ready to start the Docker engine and run a container workload.
37 37
  
38
-# Installing a Containerized Application to Help Demonstrate Capability
38
+## Installing a Containerized Application to Help Demonstrate Capability
39 39
 Now that you have your container runtime environment up and running, you may be wondering, “what can I do now?” A command prompt is not the most exciting!  To help to demonstrate the ease in which you can deploy a containerized application, we will showcase how you can quickly get a Web Server up and running.
40 40
 
41 41
 For this example, we will use the popular open source Web Server Nginx. The Nginx application has a customized VMware package and published as a dockerfile and can be downloaded, directly, through the Docker module from the Docker Hub.
42 42
new file mode 100644
... ...
@@ -0,0 +1,109 @@
0
+# Summary
1
+
2
+## Photon OS 1.0 and 2.0
3
+
4
+----
5
+
6
+- [Introduction](README.md)
7
+- [Getting Started Guides](getting-started-guides.md)
8
+    - [Downloading Photon OS](Downloading-Photon-OS.md)
9
+    -  [Quick Start](photon-admin-guide.md#getting-started-with-photon-os-20)
10
+    -   [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md)
11
+    -   [What is New in Photon OS 2.0](What-is-New-in-Photon-OS-2.0.md)
12
+    -   [Running Photon OS on vSphere](Running-Photon-OS-on-vSphere.md)
13
+    -   [Running Photon OS on Fusion](Running-Project-Photon-on-Fusion.md)
14
+    -   [Running Photon OS on Workstation](Running-Photon-OS-on-Workstation.md)
15
+    -   [Running Photon OS on AWS EC2](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md)
16
+    -   [Running Photon OS on Microsoft Azure](Running-Photon-OS-on-Microsoft-Azure.md)
17
+    -   [Running Photon OS on Google Compute Engine](Running-Photon-OS-on-Google-Compute-Engine.md)
18
+- [Administration Guides](admin-guides.md)
19
+    - [Photon OS Administration Guide](photon-admin-guide.md)
20
+    - [How to use Photon Management Daemon](pmd-cli.md)
21
+    - [Photon RPM OSTree](Photon-RPM-OSTree-a-simple-guide.md)
22
+        1. [Introduction](Photon-RPM-OSTree-1-Introduction.md)  
23
+            1. [What is OSTree? How about   RPM-OSTree?](Photon-RPM-OSTree-1-Introduction.md#11-what-is-ostree-how-about-rpm-ostree)
24
+            1. [Why use RPM-OSTree in Photon?](Photon-RPM-OSTree-1-Introduction.md#12-why-use-rpm-ostree-in-photon)
25
+            1. [Photon with RPM-OSTree installation profiles](Photon-RPM-OSTree-1-Introduction.md#13-photon-with-rpm-ostree-installation-profiles)
26
+            1. [Terminology](Photon-RPM-OSTree-1-Introduction.md#14-terminology)
27
+            1. [Sample code](Photon-RPM-OSTree-1-Introduction.md#15-sample-code)
28
+            1. [How to read this book](Photon-RPM-OSTree:-1-Introduction#16-how-to-read-this-book)
29
+            1. [RPM-OSTree in Photon OS 2.0](Photon-RPM-OSTree:-1-Introduction#17-rpm-ostree-in-photon-os-20)
30
+        2. [Installing a Photon RPM-OSTree host against default server repository](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md)  
31
+            1. [Who is this for?](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md#21-who-is-this-for)
32
+            1. [Installing the ISO, step by step](Photon-RPM-OSTree-2-Installing-a-host-against-default-server-repository.md#22-installing-the-iso-step-by-step)
33
+        3. [Concepts in action](Photon-RPM-OStree-3-Concepts-in-action.md)  
34
+            1. [Querying the deployed   filetrees](Photon-RPM-OStree-3-Concepts-in-action.md#31-querying-the-deployed-filetrees)
35
+            1. [Bootable filetree version](Photon-RPM-OStree-3-Concepts-in-action.md#32-bootable-filetree-version)
36
+            1. [Commit ID](Photon-RPM-OStree-3-Concepts-in-action.md#33-commit-id)
37
+            1. [OSname](Photon-RPM-OStree-3-Concepts-in-action.md#34-osname)
38
+            1. [Refspec](Photon-RPM-OStree-3-Concepts-in-action.md#35-refspec)
39
+            1. [Deployments](Photon-RPM-OStree-3-Concepts-in-action.md#36-deployments)
40
+        4. [Querying for commit, file and package metadata](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md)  
41
+            1. [Commit history](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#41-commit-history)
42
+            1. [Listing file mappings](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#42-listing-file-mappings)
43
+            1. [Listing configuration changes](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#43-listing-configuration-changes)
44
+            1. [Listing packages](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#44-listing-packages)
45
+            1. [Querying for package details](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#45-querying-for-package-details)
46
+            1. [Why am I unable to install, update or delete packages?](Photon-RPM-OSTree-4-Querying-for-commit-file-and-package-metadata.md#46-why-am-i-unable-to-install-update-or-delete-packages)
47
+        5. [Host updating operations](Photon-RPM-OSTree-5-Host-updating-operations.md)  
48
+            1. [Is it an update or an upgrade?](Photon-RPM-OSTree-5-Host-updating-operations.md#51-is-it-an-update-or-an-upgrade)
49
+            1. [Incremental upgrade](Photon-RPM-OSTree-5-Host-updating-operations.md#52-incremental-upgrade)
50
+            1. [Listing file differences](Photon-RPM-OSTree-5-Host-updating-operations.md#52-listing-file-differences)
51
+            1. [Listing package differences](Photon-RPM-OSTree-5-Host-updating-operations.md#52-listing-package-differences)
52
+            1. [Rollback](Photon-RPM-OSTree-5-Host-updating-operations.md#55-rollback)
53
+            1. [Deleting a deployed filetree](Photon-RPM-OSTree-5-Host-updating-operations.md#56-deleting-a-deployed-filetree)
54
+            1. [Version skipping upgrade](Photon-RPM-OSTree-5-Host-updating-operations.md#57-version-skipping-upgrade)
55
+            1. [Tracking parent commits](Photon-RPM-OSTree-5-Host-updating-operations.md#58-tracking-parent-commits)
56
+            1. [Resetting a branch to a previous commit](Photon-RPM-OSTree-5-Host-updating-operations.md#59-resetting-a-branch-to-a-previous-commit)
57
+        6. [Installing a Photon RPM-OSTree server](Photon-RPM-OSTree-6-Installing-a-server.md)  
58
+        7. [Installing a Photon RPM-OStree host against a custom server repository](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md)  
59
+            1. [Manual install of a custom host](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md#71-manual-install-of-a-custom-host)
60
+            1. [Automated install of a custom host via kickstart](Photon-RPM-OSTree-7-Installing-a-host-against-a-custom-server-repository.md#72-automated-install-of-a-custom-host-via-kickstart)
61
+        8. [File oriented server operations](Photon-RPM-OStree-8-File-oriented-server-operations.md)
62
+            1. [Starting a fresh OSTree repo](Photon-RPM-OStree-8-File-oriented-server-operations.md#81-starting-a-fresh-ostree-repo)
63
+            1. [Checking out a filetree](Photon-RPM-OStree-8-File-oriented-server-operations.md#82-checking-out-a-filetree)
64
+            1. [Committing changes to a filetree](Photon-RPM-OStree-8-File-oriented-server-operations.md#83-committing-changes-to-a-filetree)
65
+            1. [Downloading the changes at the host](Photon-RPM-OStree-8-File-oriented-server-operations.md#84-downloading-the-changes-at-the-host)
66
+            1. [Creating summary metadata](Photon-RPM-OStree-8-File-oriented-server-operations.md#85-creating-summary-metadata)
67
+        9. [Package oriented server operations](Photon-RPM-OSTree-9-Package-oriented-server-operations.md)  
68
+            1. [JSON configuration file](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#91-json-configuration-file)
69
+            1. [Package addition, removal, upgrade](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#92-package-addition-removal-upgrade)
70
+            1. [RPMS repository](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#93-rpms-repository)
71
+            1. [Composing a tree](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#94-composing-a-tree)
72
+            1. [Automatic version prefix](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#95-automatic-version-prefix)
73
+            1. [Installing package updates](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#96-installing-package-updates)
74
+            1. [Creating server metadata](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#97-creating-server-metadata)
75
+            1. [Starting a fresh OSTree repo](Photon-RPM-OSTree-9-Package-oriented-server-operations.md#98-starting-a-fresh-ostree-repo)
76
+        10. [Remotes](Photon-RPM-OSTree-10-Remotes.md)  
77
+            1. [Listing remotes](Photon-RPM-OSTree-10-Remotes.md#101-listing-remotes)
78
+            1. [GPG signature verification](Photon-RPM-OSTree-10-Remotes.md#102-gpg-signature-verification)
79
+            1. [Switching repositories](Photon-RPM-OSTree-10-Remotes.md#103-switching-repositories)
80
+            1. [Adding and removing remotes](Photon-RPM-OSTree-10-Remotes.md#104-adding-and-removing-remotes)
81
+            1. [List available branches](Photon-RPM-OSTree-10-Remotes.md#105-list-available-branches)
82
+        11. [Running container applications between bootable images](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md)  
83
+            1. [Downloading a docker container appliance](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#111-downloading-a-docker-container-appliance)
84
+            1. [Rebooting into an existing image](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#112-rebooting-into-an-existing-image)
85
+            1. [Reboot into a newly created image](Photon-RPM-OSTree-11-Running-container-applications-between-bootable-images.md#113-reboot-into-a-newly-created-image)
86
+        12. [Install or rebase to Photon OS 2.0](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md)  
87
+            1. [Installing an RPM-OSTree server](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#121-installing-an-rpm-ostree-server)
88
+            1. [Installing an RPM-OSTree host](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#122-installing-an-rpm-ostree-host)
89
+            1. [Rebasing a host from Photon 1.0 to 2.0](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#123-rebasing-a-host-from-photon-10-to-20)
90
+            1. [Creating a host raw image](Photon-RPM-OSTree-Install-or-rebase-to-Photon-OS-2.0.md#124-creating-a-host-raw-image)
91
+    
92
+            [Appendix A: Known issues](Photon-RPM-OSTree-Appendix-A-Known-issues.md)  
93
+
94
+- [Troubleshooting](photon-os-troubleshooting-guide.md)
95
+- [How-To Guides](how-to-guides.md)
96
+    - [Setting Up a Swarm Cluster with DNS](Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS.md)
97
+    - [Setting Up a Mesos Cluster](Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS.md)
98
+    - [Setting Up Marathon for a Mesos Cluster](Install-and-Configure-Marathon-for-Mesos-Cluster-on-PhotonOS.md)
99
+    - [Setting Up DCOS CLI for Mesos](Install-and-Configure-DCOS-CLI-for-Mesos.md)
100
+    - [Setting Up Mesos DNS on a Mesos Cluster](Install-and-Configure-Mesos-DNS-on-a-Mesos-Cluster.md)
101
+    - [Setting Up a Network PXE Boot Server](PXE-boot.md)
102
+    - [Working with Kickstart](kickstart.md)
103
+    - [Running Kubernetes](kubernetes.md)
104
+    - [Mounting Remote File Systems](nfs-utils.md)
105
+    - [Building Photon OS from the Source Code](build-photon.md)
106
+    - [Installing and Using Lightwave on Photon OS](Installing-and-Using-Lightwave-on-Photon-OS.md)
107
+- [Frequently Asked Questions](Frequently-Asked-Questions.md)
108
+* [Security](https://github.com/vmware/photon/wiki/Security-Advisories)
0 109
\ No newline at end of file
... ...
@@ -1 +1,3 @@
1
+# Upgrading the Kernel Version Requires Grub Changes for AWS and GCE Images
2
+
1 3
 If you upgrade the Photon OS Linux kernel with `tdnf upgrade linux`, you must modify the `/boot/grub2/grub.cfg` file to reflect the correct kernel version so that it works with AWS and GCE images. For example, if you install Photon OS 1.0 with kernel 4.4.8 and then upgrade the Linux kernel to 4.4.26, you must edit the /boot/grub2/grub.cfg file to replace the line containing `linux /boot/vmlinuz-4.4.8` with `linux /boot/vmlinuz-4.4.26`.
2 4
\ No newline at end of file
... ...
@@ -1,4 +1,6 @@
1
-You can upgrade your existing Photon OS 1.0 VMs to take advantage of security and functionality enhancements in Photon OS 2.0. For details, see [What is New in Photon OS 2.0](https://github.com/vmware/photon/wiki/What-is-New-in-Photon-OS-2.0).
1
+# Upgrading to Photon OS 2.0
2
+
3
+You can upgrade your existing Photon OS 1.0 VMs to take advantage of security and functionality enhancements in Photon OS 2.0. For details, see [What is New in Photon OS 2.0](What-is-New-in-Photon-OS-2.0.md).
2 4
 
3 5
 Photon OS 2.0 provides a seamless, in-place upgrade path for Photon OS 1.0 implementations. You simply download an upgrade package, run a script, and reboot the VM. The upgrade script will update your packages and retain your 1.0 customizations in your new OS 2.0 VM.
4 6
 
5 7
new file mode 100644
6 8
Binary files /dev/null and b/docs/VMW_logo.png differ
7 9
new file mode 100644
... ...
@@ -0,0 +1,8 @@
0
+# Photon OS Introduction
1
+
2
+-   [Introduction](introduction.md)
3
+    -   [Examining the Packages in the SPECS Directory on Github](examining_packages_spec_dir.md)
4
+    -   [Looking at the Differences Between the Minimal and the Full
5
+        Version](differences_between_minimal_and_full_version.md)
6
+    -   [The Root Account and the `sudo` and `su`
7
+        Commands](root_account_and_sudo_commands.md)
0 8
\ No newline at end of file
1 9
deleted file mode 100644
... ...
@@ -1,31 +0,0 @@
1
--   [Home](/vmware/photon/wiki)
2
--   [Download Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS)
3
--   [FAQ](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions)
4
--   Getting Started Guides
5
-    -   [Quick Start](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md#quick-start)
6
-    -   [Running Photon OS on vSphere](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-vSphere)
7
-    -   [Running Photon OS on Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion)
8
-    -   [Running Photon OS on Workstation](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Workstation)
9
-    -   [Running Photon OS on AWS EC2](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute)
10
-    -   [Running Photon OS on Microsoft Azure](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Microsoft-Azure)
11
-    -   [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine)
12
--   Guides
13
-    -   [Installation and Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md)
14
-    -   [Troubleshooting Guide](https://github.com/vmware/photon/blob/master/docs/photon-os-troubleshooting-guide.md)
15
-    -   [Photon RPM OSTree](https://github.com/vmware/photon/wiki/Photon-RPM-OSTree:-a-simple-guide)
16
--   How-To Articles
17
-    -   [Setting Up a Swarm Cluster with DNS](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS)
18
-    -   [Setting Up a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS)
19
-    -   [Setting Up Marathon for a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-Marathon-for-Mesos-Cluster-on-PhotonOS)
20
-    -   [Setting Up DCOS CLI for Mesos](https://github.com/vmware/photon/wiki/Install-and-Configure-DCOS-CLI-for-Mesos)
21
-    -   [Setting Up Mesos DNS on a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-Mesos-DNS-on-a-Mesos-Cluster)
22
-    -   [Setting Up a Network PXE Boot Server](https://github.com/vmware/photon/blob/master/docs/PXE-boot.md)
23
-    -   [Working with Kickstart](https://github.com/vmware/photon/blob/master/docs/kickstart.md)
24
-    -   [Running Kubernetes](https://github.com/vmware/photon/blob/master/docs/kubernetes.md)
25
-    -   [Mounting Remote File Systems](https://github.com/vmware/photon/blob/master/docs/nfs-utils.md)
26
-    -   [Building Photon OS from the Source Code](https://github.com/vmware/photon/blob/master/docs/build-photon.md) 
27
-    -   [Installing and Using Lightwave on Photon OS](https://github.com/vmware/photon/wiki/Installing-and-Using-Lightwave-on-Photon-OS)
28
--   Security
29
-    -   [Security Advisories](https://github.com/vmware/photon/wiki/Security-Advisories)
30
--   Related
31
-    -   [Lightwave](https://github.com/vmware/lightwave)
32 1
new file mode 100644
... ...
@@ -0,0 +1,5 @@
0
+# Photon OS Administration Guides
1
+
2
+- [Photon OS Administration Guide](photon-admin-guide.md)
3
+- [How to use Photon Management Daemon](pmd-cli.md)
4
+- [Photon RPM OSTree](Photon-RPM-OSTree-a-simple-guide.md)
0 5
new file mode 100644
... ...
@@ -0,0 +1,22 @@
0
+{
1
+
2
+	"title": "VMware Photon OS 3.0 Documentation",
3
+        "gitbook": "3.x.x",
4
+        "plugins": ["insert-logo", "chapter-fold", "edit-link", "noembed"],
5
+        "pluginsConfig": {
6
+            "insert-logo": {
7
+                "url": "VMW_logo.png",
8
+                "style": "background: none"
9
+        },
10
+            "edit-link": {
11
+                "base": "https://github.com/vmware/photon/tree/master/docs",
12
+                "label": "Edit this Page"
13
+            }
14
+        },
15
+	"pdf": {
16
+		"headerTemplate": "_TITLE_",
17
+		"footerTemplate": "_PAGENUM_",
18
+                "paperSize": "letter"
19
+	}
20
+         
21
+}
0 22
\ No newline at end of file
... ...
@@ -1,4 +1,4 @@
1
-#Compatible Cloud Images
1
+# Compatible Cloud Images
2 2
 
3 3
 The [Bintray website](https://bintray.com/vmware/photon/) contains the following cloud-ready images of Photon OS: 
4 4
 
... ...
@@ -63,7 +63,7 @@ The tar file can be uploaded to Google's cloud storage and an instance can be cr
63 63
 
64 64
 (You can also create instances from the Google developer console.)
65 65
 
66
-For more information, see [Running a Photon OS Machine on GCE](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md#running-a-photon-os-machine-on-gce). 
66
+For more information, see [Running a Photon OS Machine on GCE](photon-admin-guide.md#running-a-photon-os-machine-on-gce). 
67 67
 
68 68
 ### AWS EC2
69 69
 
... ...
@@ -83,7 +83,7 @@ Install the [AWS CLI](http://docs.aws.amazon.com/cli/latest/userguide/installing
83 83
 
84 84
 You can now launch instances using the AWS console.
85 85
 
86
-For more information, see [Customizing a Photon OS Machine on EC2](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md#customizing-a-photon-os-machine-on-ec2).
86
+For more information, see [Customizing a Photon OS Machine on EC2](photon-admin-guide.md#customizing-a-photon-os-machine-on-ec2).
87 87
 
88 88
 
89 89
 <!--
... ...
@@ -1,4 +1,4 @@
1
-Overview
1
+# Overview
2 2
 =================
3 3
 ```cloud-init``` is a multi-distribution package that handles early initialization of a cloud instance.
4 4
 
... ...
@@ -1,8 +1,8 @@
1 1
 # FAQ
2 2
 
3
-The [FAQ for Photon OS](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions) is now on the Wiki. 
3
+The [FAQ for Photon OS](Frequently-Asked-Questions.md) is now on the Wiki. 
4 4
 
5
-Technical information about Photon OS and instructions on how to use it appear in the [Photon OS Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md). 
5
+Technical information about Photon OS and instructions on how to use it appear in the [Photon OS Administration Guide](photon-admin-guide.md). 
6 6
 
7
-Getting-started guides and how-to articles covering Docker, Mesos, VMware platforms, and other technologies appear on the Photon OS [Wiki](https://github.com/vmware/photon/wiki).
7
+Getting-started guides and how-to articles covering Docker, Mesos, VMware platforms, and other technologies appear in the [Photon OS How-To Guides](how-to-guides.md).
8 8
 
... ...
@@ -1,4 +1,5 @@
1
-#Photon OS on GCE
1
+# Photon OS on GCE
2
+
2 3
 ## Google Compute Engine (GCE) Image background
3 4
 GCE is a service that lets you run virtual machines on Google's infrastructure. You can customize the virtual machine as much as you want, and you can even install your own custom operating system image. Or, you can adopt one of the public [images](https://cloud.google.com/compute/docs/operating-systems/) provided by Google. For any operating system to work with GCE, it must match Google's infrastructure needs. 
4 5
 Google provides tools that VM instances require to work correctly on GCE:
... ...
@@ -24,17 +25,17 @@ Following is the list (extracted from [this link](https://cloud.google.com/compu
24 24
 
25 25
 ## The GCE-Ready Image of Photon OS 
26 26
 
27
-The latest version of Photon OS does all of this for you. It bundles the Google startup scripts, daemon, and cloud SDK into a GCE-ready image that has been modified to meet the configuration requirements of GCE. To download the GCE-ready image of Photon OS for free, go to [Bintray](https://bintray.com/vmware/photon/). To use Photon OS with GCE, you do not need to perform the following steps unless you want to go through the exercise of customizing Photon OS to work with GCE. The Photon OS team has already done it for you. For more information, see [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine). 
27
+The latest version of Photon OS does all of this for you. It bundles the Google startup scripts, daemon, and cloud SDK into a GCE-ready image that has been modified to meet the configuration requirements of GCE. To download the GCE-ready image of Photon OS for free, go to [Bintray](https://bintray.com/vmware/photon/). To use Photon OS with GCE, you do not need to perform the following steps unless you want to go through the exercise of customizing Photon OS to work with GCE. The Photon OS team has already done it for you. For more information, see [Running Photon OS on Google Compute Engine](Running-Photon-OS-on-Google-Compute-Engine.md). 
28 28
 
29 29
 ## Creating Photon image for GCE
30
-##### 1. Prepare Photon Disk
31
-###### Install Photon Minimal on Fusion/Workstation and install some required packages.
30
+### 1. Prepare Photon Disk
31
+#### Install Photon Minimal on Fusion/Workstation and install some required packages.
32 32
       mount /dev/cdrom /media/cdrom
33 33
       tdnf install yum
34 34
       tdnf install python2-libs
35 35
       yum install ntp sudo wget tar which gptfdisk sed findutils grep gzip --nogpgcheck -y
36 36
 
37
-###### Photon installer installs GPT partition table by default but GCE only accepts MBR(msdos) type partition table. We need to convert GPT to MBR and update the grub. Following are commands to do that.
37
+#### Photon installer installs GPT partition table by default but GCE only accepts MBR(msdos) type partition table. We need to convert GPT to MBR and update the grub. Following are commands to do that.
38 38
   
39 39
       # Change partition table to MBR from GPT
40 40
       sgdisk -m 1:2 /dev/sda
... ...
@@ -50,7 +51,7 @@ The latest version of Photon OS does all of this for you. It bundles the Google
50 50
       # Create new grub.cfg based on the settings in /etc/default/grub
51 51
       grub2-mkconfig -o /boot/grub2/grub.cfg
52 52
       
53
-##### 2. Install Google Cloud SDK and GCE Packages
53
+### 2. Install Google Cloud SDK and GCE Packages
54 54
       yum install google-daemon google-startup-scripts
55 55
       cp /usr/lib/systemd/system/google* /lib/systemd/system/
56 56
       cd /lib/systemd/system/multi-user.target.wants/
... ...
@@ -62,9 +63,9 @@ The latest version of Photon OS does all of this for you. It bundles the Google
62 62
       tar -xf google-cloud-sdk.tar.gz
63 63
       cd google-cloud-sdk
64 64
       ./install.sh
65
-##### 3. Update /etc/hosts file with GCE values
65
+### 3. Update /etc/hosts file with GCE values
66 66
       echo "169.254.169.254 metadata.google.internal metadata" >> /etc/hosts
67
-##### 4. Remove all servers from ntp.conf and add Google's ntp server.
67
+### 4. Remove all servers from ntp.conf and add Google's ntp server.
68 68
       sed -i -e "/server/d" /etc/ntp.conf
69 69
       cat /etc/ntp.conf
70 70
       echo "server 169.254.169.254" >> /etc/ntp.conf
... ...
@@ -88,13 +89,13 @@ The latest version of Photon OS does all of this for you. It bundles the Google
88 88
       cd /lib/systemd/system/multi-user.target.wants/
89 89
       ln -s ../ntpd.service ntpd.service
90 90
       
91
-##### 5. Set UTC timezone
91
+### 5. Set UTC timezone
92 92
       ln -sf /usr/share/zoneinfo/UTC /etc/localtime
93 93
 
94
-##### 6. Update /etc/resolv.conf
94
+### 6. Update /etc/resolv.conf
95 95
       echo "nameserver 8.8.8.8" >> /etc/resolv.conf
96 96
 
97
-##### 7. Remove ssh host keys and add script to regenerate them at boot time.
97
+### 7. Remove ssh host keys and add script to regenerate them at boot time.
98 98
       rm /etc/ssh/ssh_host_*
99 99
       # Depending on the installation, you may need to purge the following keys
100 100
       rm /etc/ssh/ssh_host_rsa_key*
... ...
@@ -106,9 +107,9 @@ The latest version of Photon OS does all of this for you. It bundles the Google
106 106
       echo "exit 0" >> /etc/rc.local
107 107
       printf "GOOGLE\n" > /etc/ssh/sshd_not_to_be_run
108 108
       
109
-      # Edit sshd_config and ssh_config as per instructions on [this link](https://cloud.google.com/compute/docs/tutorials/building-images ).
109
+      # Edit sshd_config and ssh_config as per instructions on [this link](https://cloud.google.com/compute/docs/tutorials/building-images).
110 110
       
111
-##### 8. Change MTU to 1460 for network interface.
111
+### 8. Change MTU to 1460 for network interface.
112 112
       # Create a startup service in systemd that will change MTU and exits
113 113
       cat << EOF >> /lib/systemd/system/eth0.service
114 114
       [Unit]
... ...
@@ -127,8 +128,8 @@ The latest version of Photon OS does all of this for you. It bundles the Google
127 127
       cd /lib/systemd/system/multi-user.target.wants/
128 128
       ln -s ../eth0.service eth0.service
129 129
 
130
-##### 9. Pack and Upload to GCE.
131
-###### Shutdown the Photon VM and copy its disk to tmp folder.       
130
+### 9. Pack and Upload to GCE.
131
+#### Shutdown the Photon VM and copy its disk to tmp folder.       
132 132
       # You will need to install Google Cloud SDK on host machine to upload the image and play with GCE.
133 133
       cp Virtual\ Machines.localized/photon.vmwarevm/Virtual\ Disk.vmdk /tmp/disk.vmdk
134 134
       cd /tmp
135 135
new file mode 100644
... ...
@@ -0,0 +1,12 @@
0
+# Photon OS Getting Started Guides
1
+
2
+-   [Downloading Photon OS](Downloading-Photon-OS.md)
3
+-   [Quick Start](photon-admin-guide.md#getting-started-with-photon-os-20)
4
+-   [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md)
5
+-   [What is New in Photon OS 2.0](What-is-New-in-Photon-OS-2.0.md)
6
+-   [Running Photon OS on vSphere](Running-Photon-OS-on-vSphere.md)
7
+-   [Running Photon OS on Fusion](Running-Project-Photon-on-Fusion.md)
8
+-   [Running Photon OS on Workstation](Running-Photon-OS-on-Workstation.md)
9
+-   [Running Photon OS on AWS EC2](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md)
10
+-   [Running Photon OS on Microsoft Azure](Running-Photon-OS-on-Microsoft-Azure.md)
11
+-   [Running Photon OS on Google Compute Engine](Running-Photon-OS-on-Google-Compute-Engine.md)
0 12
new file mode 100644
... ...
@@ -0,0 +1,13 @@
0
+# Photon OS How-To Guides
1
+
2
+- [Setting Up a Swarm Cluster with DNS](Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS.md)
3
+- [Setting Up a Mesos Cluster](Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS.md)
4
+- [Setting Up Marathon for a Mesos Cluster](Install-and-Configure-Marathon-for-Mesos-Cluster-on-PhotonOS.md)
5
+- [Setting Up DCOS CLI for Mesos](Install-and-Configure-DCOS-CLI-for-Mesos.md)
6
+- [Setting Up Mesos DNS on a Mesos Cluster](Install-and-Configure-Mesos-DNS-on-a-Mesos-Cluster.md)
7
+- [Setting Up a Network PXE Boot Server](PXE-boot.md)
8
+- [Working with Kickstart](kickstart.md)
9
+- [Running Kubernetes](kubernetes.md)
10
+- [Mounting Remote File Systems](nfs-utils.md)
11
+- [Building Photon OS from the Source Code](build-photon.md)
12
+- [Installing and Using Lightwave on Photon OS](Installing-and-Using-Lightwave-on-Photon-OS.md)
0 13
new file mode 100644
... ...
@@ -0,0 +1,4 @@
0
+package.json
1
+README 
2
+CHANGELOG
3
+LICENSE / LICENCE
0 4
\ No newline at end of file
1 5
new file mode 100644
... ...
@@ -0,0 +1,39 @@
0
+#Chapter fold for GitBook
1
+==============
2
+
3
+Extended from the **expandable-chapters** plugin, and make a little modify. Thx for the original author.  
4
+Tiny change to the expandable-chapters plugin from https://github.com/DomainDrivenArchitecture/ to use smaller arrows.  
5
+
6
+### Anything Change?
7
+
8
+Modify the feature of the chapter links, make the links could be clicked to fold or expand their content.  
9
+And add a new feature in order to keep the last chapter which the user browses at last time.  
10
+
11
+### How to use it?
12
+
13
+Add it to your `book.json` configuration:
14
+
15
+```
16
+{
17
+    plugins: ["chapter-fold"]
18
+}
19
+```
20
+
21
+Install your plugins using:
22
+
23
+```
24
+$ gitbook install
25
+```
26
+
27
+### Configuration
28
+
29
+There is _no_ configuration needed at the moment, can be left empty.
30
+
31
+```
32
+{
33
+	"pluginsConfig": {
34
+		"chapter-fold":{}
35
+	}
36
+}
37
+```
38
+
0 39
new file mode 100644
... ...
@@ -0,0 +1,29 @@
0
+.book .book-summary .chapter > .articles {
1
+	overflow: hidden;
2
+	max-height: 0px;
3
+}
4
+
5
+.book .book-summary .chapter.expanded > .articles {
6
+	max-height: 9999px;
7
+}
8
+
9
+.book .book-summary .exc-trigger {
10
+	position: absolute;
11
+  	left: 12px;
12
+  	top: 12px;
13
+}
14
+
15
+.book .book-summary ul.summary li a,
16
+.book .book-summary ul.summary li span {
17
+	padding-left: 30px;
18
+}
19
+
20
+.book .book-summary .exc-trigger:before {
21
+  	content: "\f105";
22
+}
23
+
24
+.book .book-summary .expanded > a .exc-trigger:before,
25
+.book .book-summary .expanded > span .exc-trigger:before {
26
+	content: "\f107";
27
+}
28
+
0 29
new file mode 100644
... ...
@@ -0,0 +1,67 @@
0
+require(['gitbook', 'jQuery'], function(gitbook, $) {
1
+  var TOGGLE_CLASSNAME = 'expanded',
2
+      CHAPTER = '.chapter',
3
+      ARTICLES = '.articles',
4
+      TRIGGER_TEMPLATE = '<i class="exc-trigger fa"></i>',
5
+      LS_NAMESPACE = 'expChapters';
6
+  var init = function () {
7
+    // adding the trigger element to each ARTICLES parent and binding the event
8
+    var chapterLink = $(ARTICLES).parent(CHAPTER).children('a');
9
+    chapterLink.append($(TRIGGER_TEMPLATE));
10
+    chapterLink.on('click', function (e) {
11
+      e.preventDefault();
12
+      //e.stopPropagation();
13
+      toggle($(e.target).closest(CHAPTER));
14
+    });  
15
+
16
+    expand(lsItem());
17
+    //expand current selected chapter with it's parents
18
+    collapse($(CHAPTER));
19
+    var activeChapter = $(CHAPTER + '.active');
20
+    expand(activeChapter);
21
+    expand(activeChapter.parents(CHAPTER));
22
+  } 
23
+  //on page.change will happend the function.
24
+
25
+  var toggle = function ($chapter) {
26
+    if ($chapter.hasClass('expanded')) {
27
+      collapse($chapter);
28
+    } else {
29
+      expand($chapter);
30
+      //$chapter.addClass('active').siblings().removeClass('active');
31
+    }
32
+  }
33
+  var collapse = function ($chapter) {
34
+    if ($chapter.length && $chapter.hasClass(TOGGLE_CLASSNAME)) {
35
+      $chapter.removeClass(TOGGLE_CLASSNAME);
36
+      lsItem($chapter);
37
+    }
38
+  }
39
+  var expand = function ($chapter) {
40
+    if ($chapter.length && !$chapter.hasClass(TOGGLE_CLASSNAME)) {
41
+      $chapter.addClass(TOGGLE_CLASSNAME);
42
+      lsItem($chapter);
43
+    }
44
+  }
45
+  var lsItem = function () {
46
+    var map = JSON.parse(localStorage.getItem(LS_NAMESPACE)) || {}
47
+    if (arguments.length) {
48
+      var $chapters = arguments[0];
49
+      $chapters.each(function (index, element) {
50
+        var level = $(this).data('level');
51
+        var value = $(this).hasClass(TOGGLE_CLASSNAME);
52
+        map[level] = value;
53
+      })
54
+      localStorage.setItem(LS_NAMESPACE, JSON.stringify(map));
55
+    } else {
56
+      return $(CHAPTER).map(function(index, element){
57
+        if (map[$(this).data('level')]) {
58
+          return this;
59
+        }
60
+      })
61
+    }
62
+  }
63
+  gitbook.events.bind('page.change', function() {
64
+    init()
65
+  }); 
66
+});
0 67
new file mode 100644
... ...
@@ -0,0 +1,12 @@
0
+module.exports = {
1
+    // Extend website resources and html
2
+    website: {
3
+        assets: "./book",
4
+        js: [
5
+            "chapter-fold.js"
6
+        ],
7
+        css: [
8
+            "chapter-fold.css"
9
+        ]
10
+    }
11
+};
0 12
\ No newline at end of file
1 13
new file mode 100644
... ...
@@ -0,0 +1,85 @@
0
+{
1
+  "_args": [
2
+    [
3
+      {
4
+        "name": "gitbook-plugin-chapter-fold",
5
+        "raw": "gitbook-plugin-chapter-fold@0.0.4",
6
+        "rawSpec": "0.0.4",
7
+        "scope": null,
8
+        "spec": "0.0.4",
9
+        "type": "version"
10
+      },
11
+      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
12
+    ]
13
+  ],
14
+  "_from": "gitbook-plugin-chapter-fold@0.0.4",
15
+  "_id": "gitbook-plugin-chapter-fold@0.0.4",
16
+  "_inCache": true,
17
+  "_installable": true,
18
+  "_location": "/gitbook-plugin-chapter-fold",
19
+  "_nodeVersion": "8.9.4",
20
+  "_npmOperationalInternal": {
21
+    "host": "s3://npm-registry-packages",
22
+    "tmp": "tmp/gitbook-plugin-chapter-fold_0.0.4_1529402331863_0.19505579298587006"
23
+  },
24
+  "_npmUser": {
25
+    "email": "crazypad@qq.com",
26
+    "name": "coco9420"
27
+  },
28
+  "_npmVersion": "4.6.1",
29
+  "_phantomChildren": {},
30
+  "_requested": {
31
+    "name": "gitbook-plugin-chapter-fold",
32
+    "raw": "gitbook-plugin-chapter-fold@0.0.4",
33
+    "rawSpec": "0.0.4",
34
+    "scope": null,
35
+    "spec": "0.0.4",
36
+    "type": "version"
37
+  },
38
+  "_requiredBy": [
39
+    "#USER"
40
+  ],
41
+  "_resolved": "https://registry.npmjs.org/gitbook-plugin-chapter-fold/-/gitbook-plugin-chapter-fold-0.0.4.tgz",
42
+  "_shasum": "dcd5a21f80bcbc98c088419774c397ae6d4463ef",
43
+  "_shrinkwrap": null,
44
+  "_spec": "gitbook-plugin-chapter-fold@0.0.4",
45
+  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
46
+  "author": {
47
+    "name": "Colin"
48
+  },
49
+  "bugs": {
50
+    "url": "https://github.com/ColinCollins/gitbook-plugin-chapter-fold/issues"
51
+  },
52
+  "dependencies": {},
53
+  "description": "This is the fold plugin, extended from the expandable chapter plugin.",
54
+  "devDependencies": {},
55
+  "directories": {},
56
+  "dist": {
57
+    "fileCount": 6,
58
+    "shasum": "dcd5a21f80bcbc98c088419774c397ae6d4463ef",
59
+    "tarball": "https://registry.npmjs.org/gitbook-plugin-chapter-fold/-/gitbook-plugin-chapter-fold-0.0.4.tgz",
60
+    "unpackedSize": 4555
61
+  },
62
+  "engines": {
63
+    "gitbook": ">=1.0.0"
64
+  },
65
+  "gitHead": "523aa84802ccbeabfae13d66c3dda66b4961b72f",
66
+  "homepage": "https://github.com/ColinCollins/gitbook-plugin-chapter-fold",
67
+  "license": "Apache 2",
68
+  "main": "index.js",
69
+  "maintainers": [
70
+    {
71
+      "email": "crazypad@qq.com",
72
+      "name": "coco9420"
73
+    }
74
+  ],
75
+  "name": "gitbook-plugin-chapter-fold",
76
+  "optionalDependencies": {},
77
+  "readme": "ERROR: No README data found!",
78
+  "repository": {
79
+    "type": "git",
80
+    "url": "git+https://github.com/ColinCollins/gitbook-plugin-chapter-fold.git"
81
+  },
82
+  "scripts": {},
83
+  "version": "0.0.4"
84
+}
0 85
new file mode 100644
... ...
@@ -0,0 +1,25 @@
0
+# Logs
1
+logs
2
+*.log
3
+
4
+# Runtime data
5
+pids
6
+*.pid
7
+*.seed
8
+
9
+# Directory for instrumented libs generated by jscoverage/JSCover
10
+lib-cov
11
+
12
+# Coverage directory used by tools like istanbul
13
+coverage
14
+
15
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
16
+.grunt
17
+
18
+# Compiled binary addons (http://nodejs.org/api/addons.html)
19
+build/Release
20
+
21
+# Dependency directory
22
+# Deployed apps should consider commenting this line out:
23
+# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
24
+node_modules
0 25
new file mode 100644
... ...
@@ -0,0 +1,201 @@
0
+Apache License
1
+                           Version 2.0, January 2004
2
+                        http://www.apache.org/licenses/
3
+
4
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
5
+
6
+   1. Definitions.
7
+
8
+      "License" shall mean the terms and conditions for use, reproduction,
9
+      and distribution as defined by Sections 1 through 9 of this document.
10
+
11
+      "Licensor" shall mean the copyright owner or entity authorized by
12
+      the copyright owner that is granting the License.
13
+
14
+      "Legal Entity" shall mean the union of the acting entity and all
15
+      other entities that control, are controlled by, or are under common
16
+      control with that entity. For the purposes of this definition,
17
+      "control" means (i) the power, direct or indirect, to cause the
18
+      direction or management of such entity, whether by contract or
19
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
20
+      outstanding shares, or (iii) beneficial ownership of such entity.
21
+
22
+      "You" (or "Your") shall mean an individual or Legal Entity
23
+      exercising permissions granted by this License.
24
+
25
+      "Source" form shall mean the preferred form for making modifications,
26
+      including but not limited to software source code, documentation
27
+      source, and configuration files.
28
+
29
+      "Object" form shall mean any form resulting from mechanical
30
+      transformation or translation of a Source form, including but
31
+      not limited to compiled object code, generated documentation,
32
+      and conversions to other media types.
33
+
34
+      "Work" shall mean the work of authorship, whether in Source or
35
+      Object form, made available under the License, as indicated by a
36
+      copyright notice that is included in or attached to the work
37
+      (an example is provided in the Appendix below).
38
+
39
+      "Derivative Works" shall mean any work, whether in Source or Object
40
+      form, that is based on (or derived from) the Work and for which the
41
+      editorial revisions, annotations, elaborations, or other modifications
42
+      represent, as a whole, an original work of authorship. For the purposes
43
+      of this License, Derivative Works shall not include works that remain
44
+      separable from, or merely link (or bind by name) to the interfaces of,
45
+      the Work and Derivative Works thereof.
46
+
47
+      "Contribution" shall mean any work of authorship, including
48
+      the original version of the Work and any modifications or additions
49
+      to that Work or Derivative Works thereof, that is intentionally
50
+      submitted to Licensor for inclusion in the Work by the copyright owner
51
+      or by an individual or Legal Entity authorized to submit on behalf of
52
+      the copyright owner. For the purposes of this definition, "submitted"
53
+      means any form of electronic, verbal, or written communication sent
54
+      to the Licensor or its representatives, including but not limited to
55
+      communication on electronic mailing lists, source code control systems,
56
+      and issue tracking systems that are managed by, or on behalf of, the
57
+      Licensor for the purpose of discussing and improving the Work, but
58
+      excluding communication that is conspicuously marked or otherwise
59
+      designated in writing by the copyright owner as "Not a Contribution."
60
+
61
+      "Contributor" shall mean Licensor and any individual or Legal Entity
62
+      on behalf of whom a Contribution has been received by Licensor and
63
+      subsequently incorporated within the Work.
64
+
65
+   2. Grant of Copyright License. Subject to the terms and conditions of
66
+      this License, each Contributor hereby grants to You a perpetual,
67
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
68
+      copyright license to reproduce, prepare Derivative Works of,
69
+      publicly display, publicly perform, sublicense, and distribute the
70
+      Work and such Derivative Works in Source or Object form.
71
+
72
+   3. Grant of Patent License. Subject to the terms and conditions of
73
+      this License, each Contributor hereby grants to You a perpetual,
74
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
75
+      (except as stated in this section) patent license to make, have made,
76
+      use, offer to sell, sell, import, and otherwise transfer the Work,
77
+      where such license applies only to those patent claims licensable
78
+      by such Contributor that are necessarily infringed by their
79
+      Contribution(s) alone or by combination of their Contribution(s)
80
+      with the Work to which such Contribution(s) was submitted. If You
81
+      institute patent litigation against any entity (including a
82
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
83
+      or a Contribution incorporated within the Work constitutes direct
84
+      or contributory patent infringement, then any patent licenses
85
+      granted to You under this License for that Work shall terminate
86
+      as of the date such litigation is filed.
87
+
88
+   4. Redistribution. You may reproduce and distribute copies of the
89
+      Work or Derivative Works thereof in any medium, with or without
90
+      modifications, and in Source or Object form, provided that You
91
+      meet the following conditions:
92
+
93
+      (a) You must give any other recipients of the Work or
94
+          Derivative Works a copy of this License; and
95
+
96
+      (b) You must cause any modified files to carry prominent notices
97
+          stating that You changed the files; and
98
+
99
+      (c) You must retain, in the Source form of any Derivative Works
100
+          that You distribute, all copyright, patent, trademark, and
101
+          attribution notices from the Source form of the Work,
102
+          excluding those notices that do not pertain to any part of
103
+          the Derivative Works; and
104
+
105
+      (d) If the Work includes a "NOTICE" text file as part of its
106
+          distribution, then any Derivative Works that You distribute must
107
+          include a readable copy of the attribution notices contained
108
+          within such NOTICE file, excluding those notices that do not
109
+          pertain to any part of the Derivative Works, in at least one
110
+          of the following places: within a NOTICE text file distributed
111
+          as part of the Derivative Works; within the Source form or
112
+          documentation, if provided along with the Derivative Works; or,
113
+          within a display generated by the Derivative Works, if and
114
+          wherever such third-party notices normally appear. The contents
115
+          of the NOTICE file are for informational purposes only and
116
+          do not modify the License. You may add Your own attribution
117
+          notices within Derivative Works that You distribute, alongside
118
+          or as an addendum to the NOTICE text from the Work, provided
119
+          that such additional attribution notices cannot be construed
120
+          as modifying the License.
121
+
122
+      You may add Your own copyright statement to Your modifications and
123
+      may provide additional or different license terms and conditions
124
+      for use, reproduction, or distribution of Your modifications, or
125
+      for any such Derivative Works as a whole, provided Your use,
126
+      reproduction, and distribution of the Work otherwise complies with
127
+      the conditions stated in this License.
128
+
129
+   5. Submission of Contributions. Unless You explicitly state otherwise,
130
+      any Contribution intentionally submitted for inclusion in the Work
131
+      by You to the Licensor shall be under the terms and conditions of
132
+      this License, without any additional terms or conditions.
133
+      Notwithstanding the above, nothing herein shall supersede or modify
134
+      the terms of any separate license agreement you may have executed
135
+      with Licensor regarding such Contributions.
136
+
137
+   6. Trademarks. This License does not grant permission to use the trade
138
+      names, trademarks, service marks, or product names of the Licensor,
139
+      except as required for reasonable and customary use in describing the
140
+      origin of the Work and reproducing the content of the NOTICE file.
141
+
142
+   7. Disclaimer of Warranty. Unless required by applicable law or
143
+      agreed to in writing, Licensor provides the Work (and each
144
+      Contributor provides its Contributions) on an "AS IS" BASIS,
145
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
146
+      implied, including, without limitation, any warranties or conditions
147
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
148
+      PARTICULAR PURPOSE. You are solely responsible for determining the
149
+      appropriateness of using or redistributing the Work and assume any
150
+      risks associated with Your exercise of permissions under this License.
151
+
152
+   8. Limitation of Liability. In no event and under no legal theory,
153
+      whether in tort (including negligence), contract, or otherwise,
154
+      unless required by applicable law (such as deliberate and grossly
155
+      negligent acts) or agreed to in writing, shall any Contributor be
156
+      liable to You for damages, including any direct, indirect, special,
157
+      incidental, or consequential damages of any character arising as a
158
+      result of this License or out of the use or inability to use the
159
+      Work (including but not limited to damages for loss of goodwill,
160
+      work stoppage, computer failure or malfunction, or any and all
161
+      other commercial damages or losses), even if such Contributor
162
+      has been advised of the possibility of such damages.
163
+
164
+   9. Accepting Warranty or Additional Liability. While redistributing
165
+      the Work or Derivative Works thereof, You may choose to offer,
166
+      and charge a fee for, acceptance of support, warranty, indemnity,
167
+      or other liability obligations and/or rights consistent with this
168
+      License. However, in accepting such obligations, You may act only
169
+      on Your own behalf and on Your sole responsibility, not on behalf
170
+      of any other Contributor, and only if You agree to indemnify,
171
+      defend, and hold each Contributor harmless for any liability
172
+      incurred by, or claims asserted against, such Contributor by reason
173
+      of your accepting any such warranty or additional liability.
174
+
175
+   END OF TERMS AND CONDITIONS
176
+
177
+   APPENDIX: How to apply the Apache License to your work.
178
+
179
+      To apply the Apache License to your work, attach the following
180
+      boilerplate notice, with the fields enclosed by brackets "{}"
181
+      replaced with your own identifying information. (Don't include
182
+      the brackets!)  The text should be enclosed in the appropriate
183
+      comment syntax for the file format. We also recommend that a
184
+      file or class name and description of purpose be included on the
185
+      same "printed page" as the copyright notice for easier
186
+      identification within third-party archives.
187
+
188
+   Copyright {yyyy} {name of copyright owner}
189
+
190
+   Licensed under the Apache License, Version 2.0 (the "License");
191
+   you may not use this file except in compliance with the License.
192
+   You may obtain a copy of the License at
193
+
194
+       http://www.apache.org/licenses/LICENSE-2.0
195
+
196
+   Unless required by applicable law or agreed to in writing, software
197
+   distributed under the License is distributed on an "AS IS" BASIS,
198
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
199
+   See the License for the specific language governing permissions and
200
+   limitations under the License.
0 201
\ No newline at end of file
1 202
new file mode 100644
... ...
@@ -0,0 +1,110 @@
0
+GitBook Plugin: Edit Link
1
+======================================
2
+
3
+This GitBook Plugin adds "Edit This Page" link on every page.
4
+
5
+Link target will be that page's source file on Github or Gitlab or any repo.
6
+
7
+## Screenshot
8
+
9
+![gitbook-plugin-edit-link](https://cloud.githubusercontent.com/assets/4115/5695161/f5b79002-99b8-11e4-821a-d2af6c729348.png)
10
+
11
+## Usage
12
+
13
+### Step #1 - Update `book.json` file
14
+
15
+1. In you gitbook's `book.json` file, add `edit-link` to `plugins` list.
16
+2. In `pluginsConfig`, Set `base` value which is base path to your github or gitlab or other code repo. Trailing slash is NOT required.
17
+3. By default link label will be "Edit This Page". You can change it using plugin config `label`.
18
+
19
+#### Sample `book.json` file for gitbook version 2.0.1 and above
20
+
21
+```
22
+{
23
+    "gitbook": "2.0.1",
24
+    "plugins": ["edit-link"],
25
+    "pluginsConfig": {
26
+            "edit-link": {
27
+                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
28
+                "label": "Edit This Page"
29
+            }
30
+    }
31
+}
32
+```
33
+
34
+#### Sample `book.json` file for gitbook version 2.0.1+ and multilingual labels
35
+
36
+```
37
+{
38
+    "gitbook": "2.0.1",
39
+    "plugins": ["edit-link"],
40
+    "pluginsConfig": {
41
+            "edit-link": {
42
+                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
43
+                "label": {
44
+                    "en": "Edit This Page",
45
+                    "de": "Seite bearbeiten"
46
+                }
47
+            }
48
+    }
49
+}
50
+```
51
+
52
+#### Sample `book.json` file for older gitbook versions <= 1.5.0
53
+
54
+```
55
+{
56
+    "gitbook": "1.5.0",
57
+    "plugins": ["edit-link@1.1.0"],
58
+    "pluginsConfig": {
59
+            "edit-link": {
60
+                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
61
+                "label": "Edit This Page"
62
+            }
63
+    }
64
+}
65
+```
66
+
67
+**Note**: Above snippet can be used as complete `book.json` file, if your book doesn't have one yet.
68
+
69
+**Github/Gitlab**: In string `...REPO/edit/BRANCH...`, you may replace `edit` with `tree` if you want source file to open in read-mode, rather than edit-mode directly on github/gitlab.
70
+
71
+### Step #2 - gitbook commands
72
+
73
+1. Run `gitbook install`. It will automatically install `edit-link` gitbook plugin for your book. This is needed only once.
74
+2. Build your book (`gitbook build`) or serve (`gitbook serve`) as usual.
75
+
76
+## Troubleshooting
77
+
78
+1. If you are not seeing the "Edit this page" link, check if your `book.json` is valid. You can use this online tool - [http://json.parser.online.fr/beta/](http://json.parser.online.fr/beta/)
79
+2. Check if you are using default gitbook theme. It is NOT recommended to modify gitbook themes directly.
80
+
81
+## Known Issue
82
+
83
+Gitbook 2.0.1 has removed `page:after` hook which this plugin needs. An issue has been reported here - https://github.com/GitbookIO/gitbook/issues/724 but meanwhile this plugin is using workaround added by this pull request - https://github.com/rtCamp/gitbook-plugin-edit-link/pull/4
84
+
85
+So when using Gitbook 2.0.1, you may see following warning in console at the time of running build:
86
+
87
+> warn: hook 'page' used by plugin 'gitbook-plugin-edit-link' is deprecated, and will be remove in the coming versions
88
+
89
+You can safely ignore above warning for now.
90
+
91
+## How this work?
92
+
93
+This plugin simply looks for HTML comment `<!-- Actions Right -->` in parsed page content and insert "edit link" HTML just before `<!-- Actions Right -->`.
94
+
95
+This means if that HTML comment changes, this plugin will break but I hope to fix it easily whenever that happen.
96
+
97
+## Changelog
98
+
99
+**1.3 - 28 April 2015**
100
+
101
+- Gitbook 2.0.1 compatibility added by [@todvora](https://github.com/rtCamp/gitbook-plugin-edit-link/pull/4). Please see known-issues for more details.
102
+
103
+**1.2 - 03 April 2015**
104
+
105
+- Multiligual gitbook support added by [@aniav](https://github.com/aniav) ([#2](https://github.com/rtCamp/gitbook-plugin-edit-link/pull/2))
106
+
107
+**1.1.3 - 11 Jan 2015**
108
+
109
+- Initial release
0 110
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+require(["gitbook", "jQuery"], function(gitbook, $) {
1
+    gitbook.events.bind('start', function (e, config) {
2
+        var conf = config['edit-link'];
3
+        var label = conf.label;
4
+        var base = conf.base;
5
+        var lang = gitbook.state.innerLanguage;
6
+        if (lang) {
7
+            // label can be a unique string for multi-languages site
8
+            if (typeof label === 'object') label = label[lang];
9
+
10
+            lang = lang + '/';
11
+        }
12
+
13
+        // Add slash at the end if not present
14
+        if (base.slice(-1) != "/") {
15
+            base = base + "/";
16
+        }
17
+
18
+        gitbook.toolbar.createButton({
19
+            icon: 'fa fa-edit',
20
+            text: label,
21
+            onClick: function() {
22
+                var filepath = gitbook.state.filepath;
23
+
24
+                window.open(base + lang + filepath);
25
+            }
26
+        });
27
+    });
28
+
29
+});
0 30
\ No newline at end of file
1 31
new file mode 100644
... ...
@@ -0,0 +1,8 @@
0
+var path = require('path');
1
+
2
+module.exports = {
3
+    book: {
4
+        assets: "./book",
5
+        js: ["plugin.js"]
6
+    }
7
+};
0 8
new file mode 100644
... ...
@@ -0,0 +1,121 @@
0
+{
1
+  "_args": [
2
+    [
3
+      {
4
+        "name": "gitbook-plugin-edit-link",
5
+        "raw": "gitbook-plugin-edit-link@2.0.2",
6
+        "rawSpec": "2.0.2",
7
+        "scope": null,
8
+        "spec": "2.0.2",
9
+        "type": "version"
10
+      },
11
+      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
12
+    ]
13
+  ],
14
+  "_from": "gitbook-plugin-edit-link@2.0.2",
15
+  "_id": "gitbook-plugin-edit-link@2.0.2",
16
+  "_inCache": true,
17
+  "_installable": true,
18
+  "_location": "/gitbook-plugin-edit-link",
19
+  "_nodeVersion": "5.1.0",
20
+  "_npmUser": {
21
+    "email": "samypesse@gmail.com",
22
+    "name": "samypesse"
23
+  },
24
+  "_npmVersion": "3.3.12",
25
+  "_phantomChildren": {},
26
+  "_requested": {
27
+    "name": "gitbook-plugin-edit-link",
28
+    "raw": "gitbook-plugin-edit-link@2.0.2",
29
+    "rawSpec": "2.0.2",
30
+    "scope": null,
31
+    "spec": "2.0.2",
32
+    "type": "version"
33
+  },
34
+  "_requiredBy": [
35
+    "#USER"
36
+  ],
37
+  "_resolved": "https://registry.npmjs.org/gitbook-plugin-edit-link/-/gitbook-plugin-edit-link-2.0.2.tgz",
38
+  "_shasum": "d8fcd927eced81e7a662a72d59db609eafd7e72f",
39
+  "_shrinkwrap": null,
40
+  "_spec": "gitbook-plugin-edit-link@2.0.2",
41
+  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
42
+  "author": {
43
+    "email": "admin@rtcamp.com",
44
+    "name": "rtCamp"
45
+  },
46
+  "bugs": {
47
+    "url": "https://github.com/rtCamp/gitbook-plugin-edit-link/issues"
48
+  },
49
+  "contributors": [
50
+    {
51
+      "email": "rahul.bansal@rtcamp.com",
52
+      "name": "Rahul Bansal"
53
+    },
54
+    {
55
+      "email": "samy@gitbook.com",
56
+      "name": "Samy Pessé"
57
+    }
58
+  ],
59
+  "dependencies": {},
60
+  "description": "GitBook Plugin to add \"Edit this page\" link on every page. Link target will be that page's source file on Github or Gitlab or any repo.",
61
+  "devDependencies": {},
62
+  "directories": {},
63
+  "dist": {
64
+    "shasum": "d8fcd927eced81e7a662a72d59db609eafd7e72f",
65
+    "tarball": "https://registry.npmjs.org/gitbook-plugin-edit-link/-/gitbook-plugin-edit-link-2.0.2.tgz"
66
+  },
67
+  "engines": {
68
+    "gitbook": ">=2.5.0"
69
+  },
70
+  "gitHead": "51a5d22a76f46dd41a057837c6ef4c0f09ec9cbb",
71
+  "gitbook": {
72
+    "properties": {
73
+      "base": {
74
+        "required": true,
75
+        "title": "Base for the edit redirection",
76
+        "type": "string"
77
+      },
78
+      "label": {
79
+        "default": "Edit This Page",
80
+        "title": "Label for the edit button",
81
+        "type": [
82
+          "string",
83
+          "object"
84
+        ]
85
+      }
86
+    }
87
+  },
88
+  "homepage": "https://github.com/rtCamp/gitbook-plugin-edit-link",
89
+  "keywords": [
90
+    "gitbook",
91
+    "plugin",
92
+    "edit-with",
93
+    "github"
94
+  ],
95
+  "license": "Apache-2.0",
96
+  "main": "index.js",
97
+  "maintainers": [
98
+    {
99
+      "email": "rahul.bansal@rtcamp.com",
100
+      "name": "rahul286"
101
+    },
102
+    {
103
+      "email": "admin@rtcamp.com",
104
+      "name": "rtcamp"
105
+    },
106
+    {
107
+      "email": "samypesse@gmail.com",
108
+      "name": "samypesse"
109
+    }
110
+  ],
111
+  "name": "gitbook-plugin-edit-link",
112
+  "optionalDependencies": {},
113
+  "readme": "ERROR: No README data found!",
114
+  "repository": {
115
+    "type": "git",
116
+    "url": "git+https://github.com/rtCamp/gitbook-plugin-edit-link.git"
117
+  },
118
+  "scripts": {},
119
+  "version": "2.0.2"
120
+}
0 121
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+This is free and unencumbered software released into the public domain.
1
+
2
+Anyone is free to copy, modify, publish, use, compile, sell, or
3
+distribute this software, either in source code form or as a compiled
4
+binary, for any purpose, commercial or non-commercial, and by any
5
+means.
6
+
7
+In jurisdictions that recognize copyright laws, the author or authors
8
+of this software dedicate any and all copyright interest in the
9
+software to the public domain. We make this dedication for the benefit
10
+of the public at large and to the detriment of our heirs and
11
+successors. We intend this dedication to be an overt act of
12
+relinquishment in perpetuity of all present and future rights to this
13
+software under copyright law.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21
+OTHER DEALINGS IN THE SOFTWARE.
22
+
23
+For more information, please refer to <https://unlicense.org>
0 24
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+GitBook plugin: Insert logo
1
+===========================
2
+
3
+NPM package [here](https://www.npmjs.com/package/gitbook-plugin-insert-logo)
4
+
5
+```
6
+npm i gitbook-plugin-insert-logo
7
+```
8
+
9
+The following plugin inserts a logo into the navigation bar (above the summary and above the search input). Simply, drop a `logo.png` file into the root folder of your GitBook and add this plugin into your `book.json`:
10
+
11
+```json
12
+{
13
+    "plugins": ["insert-logo", "another plugin 1", "another plugin 2"]
14
+}
15
+```
16
+
17
+You will also need to provide url for the logo. The url can be local file, a remote URL, or base64 hash. Add the url into the plugin configuration in your `book.json`:
18
+
19
+```json
20
+{
21
+    "plugins": ["insert-logo", "another plugin 1", "another plugin 2"],
22
+    "pluginsConfig": {
23
+        "insert-logo": {
24
+            "url": "http://www.example.com/my-logo.png"
25
+            "style": "background: none;"
26
+        }
27
+    }
28
+}
29
+```
0 30
new file mode 100644
... ...
@@ -0,0 +1,12 @@
0
+module.exports = {
1
+    book: {
2
+        assets: './lib',
3
+        js: [
4
+            'plugin.js'
5
+        ],
6
+        css: [
7
+            'plugin.css'
8
+        ]
9
+    }
10
+
11
+};
0 12
\ No newline at end of file
1 13
new file mode 100644
... ...
@@ -0,0 +1,4 @@
0
+.book .book-summary .book-logo {
1
+    text-align: center;
2
+    padding: 20px;
3
+}
0 4
\ No newline at end of file
1 5
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+require(['gitbook', 'jQuery'], function (gitbook, $) {
1
+  var url = ''
2
+  var style = ''
3
+  var insertLogo = function (url, style) {
4
+    $('.book-summary').children().eq(0).before('<div class="book-logo"><img src="' + url + '" style="' + style + '"></div>')
5
+  }
6
+  gitbook.events.bind('start', function (e, config) {
7
+    url = config['insert-logo']['url']
8
+    style = config['insert-logo']['style']
9
+  })
10
+
11
+  gitbook.events.bind("page.change", function() {
12
+    insertLogo(url, style)
13
+  })
14
+})
0 15
new file mode 100644
... ...
@@ -0,0 +1,106 @@
0
+{
1
+  "_args": [
2
+    [
3
+      {
4
+        "name": "gitbook-plugin-insert-logo",
5
+        "raw": "gitbook-plugin-insert-logo@0.1.5",
6
+        "rawSpec": "0.1.5",
7
+        "scope": null,
8
+        "spec": "0.1.5",
9
+        "type": "version"
10
+      },
11
+      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
12
+    ]
13
+  ],
14
+  "_from": "gitbook-plugin-insert-logo@0.1.5",
15
+  "_id": "gitbook-plugin-insert-logo@0.1.5",
16
+  "_inCache": true,
17
+  "_installable": true,
18
+  "_location": "/gitbook-plugin-insert-logo",
19
+  "_nodeVersion": "6.11.4",
20
+  "_npmOperationalInternal": {
21
+    "host": "s3://npm-registry-packages",
22
+    "tmp": "tmp/gitbook-plugin-insert-logo_0.1.5_1521716276866_0.7489566873105806"
23
+  },
24
+  "_npmUser": {
25
+    "email": "matusnov@gmail.com",
26
+    "name": "matusnov"
27
+  },
28
+  "_npmVersion": "3.5.2",
29
+  "_phantomChildren": {},
30
+  "_requested": {
31
+    "name": "gitbook-plugin-insert-logo",
32
+    "raw": "gitbook-plugin-insert-logo@0.1.5",
33
+    "rawSpec": "0.1.5",
34
+    "scope": null,
35
+    "spec": "0.1.5",
36
+    "type": "version"
37
+  },
38
+  "_requiredBy": [
39
+    "#USER"
40
+  ],
41
+  "_resolved": "https://registry.npmjs.org/gitbook-plugin-insert-logo/-/gitbook-plugin-insert-logo-0.1.5.tgz",
42
+  "_shasum": "daae8dda41a236d54f13931e570b26729557885a",
43
+  "_shrinkwrap": null,
44
+  "_spec": "gitbook-plugin-insert-logo@0.1.5",
45
+  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
46
+  "author": {
47
+    "email": "matusnov@gmail.com",
48
+    "name": "matusnovak"
49
+  },
50
+  "bugs": {
51
+    "url": "https://github.com/matusnovak/gitbook-plugin-insert-logo/issues"
52
+  },
53
+  "dependencies": {},
54
+  "description": "GitBook Plugin to insert (url or file or base64) into the navigation above search input.",
55
+  "devDependencies": {},
56
+  "directories": {},
57
+  "dist": {
58
+    "fileCount": 6,
59
+    "shasum": "daae8dda41a236d54f13931e570b26729557885a",
60
+    "tarball": "https://registry.npmjs.org/gitbook-plugin-insert-logo/-/gitbook-plugin-insert-logo-0.1.5.tgz",
61
+    "unpackedSize": 3785
62
+  },
63
+  "engines": {
64
+    "gitbook": ">1.x.x"
65
+  },
66
+  "gitHead": "fba26154a69508a0a84898423749f7dbea433485",
67
+  "gitbook": {
68
+    "properties": {
69
+      "style": {
70
+        "default": "background: none;",
71
+        "title": "Custom CSS",
72
+        "type": "string"
73
+      },
74
+      "url": {
75
+        "default": "http://www.example.com/my-logo.png",
76
+        "title": "Logo URL",
77
+        "type": "string"
78
+      }
79
+    }
80
+  },
81
+  "homepage": "https://github.com/matusnovak/gitbook-plugin-insert-logo#readme",
82
+  "keywords": [
83
+    "gitbook",
84
+    "plugin",
85
+    "insert-logo",
86
+    "logo",
87
+    "github"
88
+  ],
89
+  "main": "index.js",
90
+  "maintainers": [
91
+    {
92
+      "email": "matusnov@gmail.com",
93
+      "name": "matusnov"
94
+    }
95
+  ],
96
+  "name": "gitbook-plugin-insert-logo",
97
+  "optionalDependencies": {},
98
+  "readme": "ERROR: No README data found!",
99
+  "repository": {
100
+    "type": "git",
101
+    "url": "git+https://github.com/matusnovak/gitbook-plugin-insert-logo.git"
102
+  },
103
+  "scripts": {},
104
+  "version": "0.1.5"
105
+}
0 106
new file mode 100644
... ...
@@ -0,0 +1,2 @@
0
+.DS_Store
1
+*.log
0 2
\ No newline at end of file
1 3
new file mode 100644
... ...
@@ -0,0 +1,27 @@
0
+# Gitbook plugin Noembed
1
+
2
+Get any video or iframe card supported by [Noembed](https://noembed.com/#supported-sites). (Vimeo, YouTube, Facebook, Twitter, Instagram, etc)
3
+
4
+*If the sites you need to embed are not supported by Noembed, you can try [gitbook-plugin-iframely](https://github.com/1cgonza/gitbook-plugin-iframely). They claim to support 1,800+ sites but you need at least a free account to get an API key.*
5
+
6
+## Installation
7
+Add "noembed" to your plugins in `book.json`.
8
+
9
+```js
10
+{
11
+  "plugins": ["noembed"]
12
+}
13
+```
14
+
15
+## Usage
16
+- You can use two filters: `noembed` or `video`. *(At the moment they both do exactly the same)*
17
+- Make sure you wrap your URL around single or double quotes.
18
+
19
+```md
20
+{{ 'https://vimeo.com/31942602' | noembed }}
21
+
22
+or
23
+
24
+{{ 'https://vimeo.com/31942602' | video }}
25
+```
26
+
0 27
new file mode 100644
... ...
@@ -0,0 +1,93 @@
0
+function renderNoembed(event) {
1
+  var iframes         = document.querySelectorAll('.noembed-wrapper');
2
+  var loaded          = 0;
3
+  var total           = iframes.length;
4
+  var externalScripts = [];
5
+
6
+  function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {
7
+    var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);
8
+
9
+    return {width: (srcWidth * ratio) | 0, height: (srcHeight * ratio) | 0};
10
+  }
11
+
12
+  function ajaxReq(url, callback) {
13
+    var req = new XMLHttpRequest();
14
+    req.onreadystatechange = function() {
15
+      if (req.readyState === XMLHttpRequest.DONE) {
16
+        if (req.status === 200) {
17
+          callback(JSON.parse(req.responseText));
18
+        }
19
+      }
20
+    };
21
+
22
+    req.open('GET', url, true);
23
+    req.send();
24
+    return req;
25
+  }
26
+
27
+  function checkForScripts(html) {
28
+    var tempElement = document.createElement('div');
29
+    tempElement.innerHTML = html;
30
+
31
+    var scripts = tempElement.querySelectorAll('script');
32
+
33
+    if (scripts.length) {
34
+      for (var i = 0; i < scripts.length; i++) {
35
+        if (externalScripts.indexOf(scripts[i].src) < 0) {
36
+          externalScripts.push(scripts[i].src);
37
+          scripts[i].parentElement.removeChild(scripts[i]);
38
+        }
39
+      }
40
+    }
41
+
42
+    return tempElement;
43
+  }
44
+
45
+  function getVideoData(url, wrapper) {
46
+    if (!!url.length) {
47
+      ajaxReq(url, function(res) {
48
+        var safeHtml = '';
49
+
50
+        if (res.html) {
51
+          safeHtml = checkForScripts(res.html);
52
+
53
+          if (res.type === 'video' && res.hasOwnProperty('width') && res.hasOwnProperty('height')) {
54
+            var dims = calculateAspectRatioFit(res.width, res.height, wrapper.clientWidth, 9999);
55
+            wrapper.classList.add('noembed-type-video');
56
+            wrapper.style.width = dims.width + 'px';
57
+            wrapper.style.height = dims.height + 'px';
58
+          }
59
+
60
+        } else {
61
+          safeHtml = document.createElement('a');
62
+          safeHtml.href = res.url;
63
+          safeHtml.innerText = res.url;
64
+        }
65
+
66
+        wrapper.innerHTML = '';
67
+        wrapper.appendChild(safeHtml);
68
+
69
+        loaded++;
70
+
71
+        if (loaded === total) {
72
+          externalScripts.forEach(function(script) {
73
+            var newScript = document.createElement('script');
74
+            newScript.src = script;
75
+            document.body.appendChild(newScript);
76
+          });
77
+        }
78
+      });
79
+    }
80
+  }
81
+
82
+  for (var i = 0; i < iframes.length; i++) {
83
+    var wrapper = iframes[i];
84
+    var url     = wrapper.dataset.url;
85
+
86
+    getVideoData(url, wrapper);
87
+  }
88
+}
89
+
90
+require(['gitbook'], function(gitbook) {
91
+  gitbook.events.on('page.change', renderNoembed);
92
+});
0 93
new file mode 100644
... ...
@@ -0,0 +1,10 @@
0
+.noembed-wrapper {
1
+  position: relative;
2
+  margin: 1em 0;
3
+}
4
+
5
+.noembed-type-video iframe {
6
+  width: 100%;
7
+  height: 100%;
8
+  position: absolute;
9
+}
0 10
\ No newline at end of file
1 11
new file mode 100644
... ...
@@ -0,0 +1,22 @@
0
+function noembed(url) {
1
+  var endpoint = '//noembed.com/embed?';
2
+
3
+  if (!!url.length) {
4
+    endpoint += 'url=' + encodeURIComponent(url);
5
+    return '<div class="noembed-wrapper" data-url="' + endpoint + '">' + url + '</div>';
6
+  }
7
+
8
+  return url;
9
+}
10
+
11
+module.exports = {
12
+  website: {
13
+    assets: './assets',
14
+    js: ['scripts.js'],
15
+    css: ['style.css']
16
+  },
17
+  filters: {
18
+    noembed: noembed,
19
+    video: noembed,
20
+  }
21
+};
0 22
new file mode 100644
... ...
@@ -0,0 +1,97 @@
0
+{
1
+  "_args": [
2
+    [
3
+      {
4
+        "name": "gitbook-plugin-noembed",
5
+        "raw": "gitbook-plugin-noembed@0.1.0",
6
+        "rawSpec": "0.1.0",
7
+        "scope": null,
8
+        "spec": "0.1.0",
9
+        "type": "version"
10
+      },
11
+      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
12
+    ]
13
+  ],
14
+  "_from": "gitbook-plugin-noembed@0.1.0",
15
+  "_id": "gitbook-plugin-noembed@0.1.0",
16
+  "_inCache": true,
17
+  "_installable": true,
18
+  "_location": "/gitbook-plugin-noembed",
19
+  "_nodeVersion": "7.4.0",
20
+  "_npmOperationalInternal": {
21
+    "host": "packages-18-east.internal.npmjs.com",
22
+    "tmp": "tmp/gitbook-plugin-noembed-0.1.0.tgz_1485114395790_0.36705310526303947"
23
+  },
24
+  "_npmUser": {
25
+    "email": "info@juancgonzalez.com",
26
+    "name": "juancgonza"
27
+  },
28
+  "_npmVersion": "4.1.1",
29
+  "_phantomChildren": {},
30
+  "_requested": {
31
+    "name": "gitbook-plugin-noembed",
32
+    "raw": "gitbook-plugin-noembed@0.1.0",
33
+    "rawSpec": "0.1.0",
34
+    "scope": null,
35
+    "spec": "0.1.0",
36
+    "type": "version"
37
+  },
38
+  "_requiredBy": [
39
+    "#USER"
40
+  ],
41
+  "_resolved": "https://registry.npmjs.org/gitbook-plugin-noembed/-/gitbook-plugin-noembed-0.1.0.tgz",
42
+  "_shasum": "e0953fc194a42702404e9ca2e865b5f3ee0d6b23",
43
+  "_shrinkwrap": null,
44
+  "_spec": "gitbook-plugin-noembed@0.1.0",
45
+  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
46
+  "author": {
47
+    "email": "info@juancgonzalez.com",
48
+    "name": "Juan Camilo Gonzalez",
49
+    "url": "http://juancgonzalez.com"
50
+  },
51
+  "bugs": {
52
+    "url": "https://github.com/1cgonza/gitbook-plugin-noembed/issues"
53
+  },
54
+  "dependencies": {},
55
+  "description": "Get any video or iframe card supported by https://noembed.com/#supported-sites. (Vimeo, YouTube, Facebook, Twitter, Instagram, etc)",
56
+  "devDependencies": {},
57
+  "directories": {},
58
+  "dist": {
59
+    "shasum": "e0953fc194a42702404e9ca2e865b5f3ee0d6b23",
60
+    "tarball": "https://registry.npmjs.org/gitbook-plugin-noembed/-/gitbook-plugin-noembed-0.1.0.tgz"
61
+  },
62
+  "engines": {
63
+    "gitbook": ">2.0.0"
64
+  },
65
+  "gitHead": "66c29b5aa6bc6981ed68d3afd3385fc32e5af0fe",
66
+  "homepage": "https://github.com/1cgonza/gitbook-plugin-noembed#readme",
67
+  "keywords": [
68
+    "gitbook",
69
+    "gitbook-plugin",
70
+    "videos",
71
+    "oembed",
72
+    "iframe",
73
+    "noembed",
74
+    "vimeo",
75
+    "youtube",
76
+    "instagram",
77
+    "facebook"
78
+  ],
79
+  "license": "Apache-2.0",
80
+  "main": "index.js",
81
+  "maintainers": [
82
+    {
83
+      "email": "info@juancgonzalez.com",
84
+      "name": "juancgonza"
85
+    }
86
+  ],
87
+  "name": "gitbook-plugin-noembed",
88
+  "optionalDependencies": {},
89
+  "readme": "ERROR: No README data found!",
90
+  "repository": {
91
+    "type": "git",
92
+    "url": "git+https://github.com/1cgonza/gitbook-plugin-noembed.git"
93
+  },
94
+  "scripts": {},
95
+  "version": "0.1.0"
96
+}
... ...
@@ -202,14 +202,14 @@ This guide assumes that you are logged in to Photon OS with the root account and
202 202
 **NOTE:** This section applies to Photon OS w.0 only.
203 203
 
204 204
 To get started with Photon OS 2.0, refer to the installation instructions for your target environment:
205
-- [Running Photon OS on VMware vSphere](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-vSphere)
206
-- [Running Photon OS on VMware Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion)
207
-- [Running Photon OS on VMware Workstation](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Workstation)
208
-- [Running Photon OS on Amazon EC2](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute)
209
-- [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine)
210
-- [Running Photon OS on Microsoft Azure](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Microsoft-Azure)
205
+- [Running Photon OS on VMware vSphere](Running-Photon-OS-on-vSphere.md)
206
+- [Running Photon OS on VMware Fusion](Running-Project-Photon-on-Fusion.md)
207
+- [Running Photon OS on VMware Workstation](Running-Photon-OS-on-Workstation.md)
208
+- [Running Photon OS on Amazon EC2](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md)
209
+- [Running Photon OS on Google Compute Engine](Running-Photon-OS-on-Google-Compute-Engine.md)
210
+- [Running Photon OS on Microsoft Azure](Running-Photon-OS-on-Microsoft-Azure.md)
211 211
 
212
-**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](https://github.com/vmware/photon/wiki/Upgrading-to-Photon-OS-2.0). 
212
+**Note**: If you want to upgrade an existing Photon 1.0 VM, refer to the instructions in [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md). 
213 213
 
214 214
 ## Quick Start for Photon OS 1.0
215 215
 
... ...
@@ -225,7 +225,7 @@ This section helps you get Photon OS up and running quickly and easily. There ar
225 225
 
226 226
 The full version of Photon OS installs from an ISO in VMware Workstation and other hypervisors in a matter of minutes. Photon OS is a free download from the Bintray web site.
227 227
 
228
-This section demonstrates how to create a virtual machine running Photon OS in VMware Workstation 12 Pro. If you are using a different hypervisor, the example set by this section should help you install it in your system. For instructions on how to install Photon OS from an ISO in VMware vSphere, see [Installing Photon OS on VMware vSphere from an ISO Image](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-vSphere).
228
+This section demonstrates how to create a virtual machine running Photon OS in VMware Workstation 12 Pro. If you are using a different hypervisor, the example set by this section should help you install it in your system. For instructions on how to install Photon OS from an ISO in VMware vSphere, see [Installing Photon OS on VMware vSphere from an ISO Image](Running-Project-Photon-on-vSphere.md).
229 229
 
230 230
 1. Go to the following Bintray URL and download the ISO for the general availability release of Photon OS:
231 231
 
... ...
@@ -257,7 +257,7 @@ The installation typically completes in about 150 seconds for the full version a
257 257
 
258 258
 To connect to Photon OS by SSH, see the section on permitting root login with SSH below.  
259 259
 
260
-You can also build an ISO containing Photon OS from its source code on GitHub by following the instructions in the document on [building Photon OS](https://github.com/vmware/photon/blob/master/docs/build-photon.md). 
260
+You can also build an ISO containing Photon OS from its source code on GitHub by following the instructions in the document on [building Photon OS](build-photon.md). 
261 261
 
262 262
 ### Installing the OVA for the Minimal Version in vSphere
263 263
 
... ...
@@ -273,7 +273,7 @@ In vSphere Client, turn on the power of the Photon OS virtual machine and open a
273 273
 
274 274
 The default password for the root account is `changeme`, and you must change it when you first login. For security, Photon OS forbids common dictionary words for the root password. 
275 275
 
276
-There are other options for installing Photon OS in vSphere, such as building an ISO from the source code. For more information about the versions of Photon and their installation options, see [Running Photon OS on vSphere](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-vSphere).
276
+There are other options for installing Photon OS in vSphere, such as building an ISO from the source code. For more information about the versions of Photon and their installation options, see [Running Photon OS on vSphere](Running-Project-Photon-on-vSphere.md).
277 277
 
278 278
 ### Rapidly Deploying the Photon OS OVA in VMware Workstation 12 Pro
279 279
 
... ...
@@ -329,11 +329,11 @@ You can then connect to the Photon OS machine with the root account over SSH:
329 329
 
330 330
 ### PXE Boot
331 331
 
332
-Photon OS works with the Preboot Execution Environment, or PXE, to boot by retrieving software from a PXE server over a network connection. For instructions on how to set Photon OS to boot from a PXE server, see [Network PXE Boot](https://github.com/vmware/photon/blob/master/docs/PXE-boot.md).
332
+Photon OS works with the Preboot Execution Environment, or PXE, to boot by retrieving software from a PXE server over a network connection. For instructions on how to set Photon OS to boot from a PXE server, see [Network PXE Boot](PXE-boot.md).
333 333
 
334 334
 ### Kickstart
335 335
 
336
-Photon OS supports kickstart for unattended installations through a CD-ROM or an HTTP server. On Photon OS, kickstart can set the hostname, password, run post-installation scripts, and add public keys for SSH. See [Kickstart Support](https://github.com/vmware/photon/blob/master/docs/kickstart.md).
336
+Photon OS supports kickstart for unattended installations through a CD-ROM or an HTTP server. On Photon OS, kickstart can set the hostname, password, run post-installation scripts, and add public keys for SSH. See [Kickstart Support](kickstart.md).
337 337
 
338 338
 ### Checking the Version and Build Number
339 339
 
... ...
@@ -893,7 +893,7 @@ The pmd package is included with your Photon OS 2.0 distribution. To make sure t
893 893
 
894 894
 ##### pmd-cli
895 895
 
896
-The pmd-cli utility enables Photon customers to invoke API requests securely on local and remote servers. For details, see [Photon Management Daemon Command-line Interface (pmd-cli)](https://github.com/vmware/photon/blob/master/docs/pmd-cli.md).
896
+The pmd-cli utility enables Photon customers to invoke API requests securely on local and remote servers. For details, see [Photon Management Daemon Command-line Interface (pmd-cli)](pmd-cli.md).
897 897
 
898 898
 ##### PMD REST API
899 899
 
... ...
@@ -925,7 +925,7 @@ To show help text for individual interfaces:
925 925
 >>> help(pmd.server().firewall)
926 926
 >>> help(pmd.server().user)
927 927
 ~~~~
928
-For details about the network commands, see also the [Network Configuration Manager - Python API](https://github.com/vmware/photon/blob/master/docs/netmgr.python.md).
928
+For details about the network commands, see also the [Network Configuration Manager - Python API](netmgr.python.md).
929 929
 
930 930
 ##### PMD C Documentation
931 931
 
... ...
@@ -933,7 +933,7 @@ PMD C APIs are defined in the header files (pmd_fwmgmt.h, pmd_netmgr.h, pmd_pkgm
933 933
 ~~~~
934 934
 [https://github.com/vmware/pmd/tree/master/include](https://github.com/vmware/pmd/tree/master/include)
935 935
 ~~~~
936
-For details about the network commands, see also the [Network Configuration Manager - C API](https://github.com/vmware/photon/blob/master/docs/netmgr.c.md).
936
+For details about the network commands, see also the [Network Configuration Manager - C API](netmgr.c.md).
937 937
 
938 938
 ### Using the Network Configuration Manager
939 939
 
... ...
@@ -948,9 +948,9 @@ The Network Configuration Manager library that ships with Photon OS 2.0 provides
948 948
 - object parameters (interfaces and files)
949 949
 
950 950
 For additional details, see:
951
-- **CLI** - see the ``-net`` commands in the [Photon Management Daemon Command-line Interface (pmd-cli)](https://github.com/vmware/photon/blob/master/docs/pmd-cli.md)
952
-- **C APIs** - [Network Configuration Manager - C API](https://github.com/vmware/photon/blob/master/docs/netmgr.c.md)
953
-- **Python APIs** - [Network Configuration Manager - Python API](https://github.com/vmware/photon/blob/master/docs/netmgr.python.md)
951
+- **CLI** - see the ``-net`` commands in the [Photon Management Daemon Command-line Interface (pmd-cli)](pmd-cli.md)
952
+- **C APIs** - [Network Configuration Manager - C API](netmgr.c.md)
953
+- **Python APIs** - [Network Configuration Manager - Python API](netmgr.python.md)
954 954
 
955 955
 ### Use `ip` and `ss` Commands Instead of `ifconfig` and `netstat`
956 956
 
... ...
@@ -1352,7 +1352,7 @@ The nfs-utils package is installed by default in the full version of Photon OS b
1352 1352
 
1353 1353
 	tdnf install nfs-utils
1354 1354
 
1355
-For instructions on how to use nfs-utils to share files over a network, see [Photon OS nfs-utils](https://github.com/vmware/photon/blob/master/docs/nfs-utils.md).
1355
+For instructions on how to use nfs-utils to share files over a network, see [Photon OS nfs-utils](nfs-utils.md).
1356 1356
 
1357 1357
 ### Installing the Packages for tcpdump and netcat with tdnf
1358 1358
 
... ...
@@ -1511,9 +1511,9 @@ Now check the cloud-init output log file on EC2 at `/var/log/cloud-init-output.l
1511 1511
 
1512 1512
 For more information on using cloud-init user data on EC2, see [Running Commands on Your Linux Instance at Launch](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html).
1513 1513
 
1514
-An article on the Photon OS GitHub wiki demonstrates how to get Photon OS up and running on EC2 and run a containerized application in the Docker engine. See [Running Photon OS on Amazon Elastic Cloud Compute](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute).
1514
+An article on the Photon OS GitHub wiki demonstrates how to get Photon OS up and running on EC2 and run a containerized application in the Docker engine. See [Running Photon OS on Amazon Elastic Cloud Compute](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md).
1515 1515
 
1516
-With Photon OS, you can also build cloud images on Google Compute Engine and other cloud providers; see [Compatible Cloud Images](https://github.com/vmware/photon/blob/master/docs/cloud-images.md).
1516
+With Photon OS, you can also build cloud images on Google Compute Engine and other cloud providers; see [Compatible Cloud Images](cloud-images.md).
1517 1517
 
1518 1518
 ### Running a Photon OS Machine on GCE
1519 1519
 
... ...
@@ -1576,7 +1576,7 @@ Photon OS also enables you to run a docker container that, in turn, runs Photon
1576 1576
 
1577 1577
 ## Kubernetes
1578 1578
 
1579
-The full version of Photon OS includes Kubernetes so you can manage clusters of containers. For more information, see [Running Kubernetes on Photon OS](https://github.com/vmware/photon/blob/master/docs/kubernetes.md).
1579
+The full version of Photon OS includes Kubernetes so you can manage clusters of containers. For more information, see [Running Kubernetes on Photon OS](kubernetes.md).
1580 1580
 
1581 1581
 ## Installing Sendmail
1582 1582
 
... ...
@@ -1958,15 +1958,6 @@ Here's the `tdnf` command to install these packages:
1958 1958
 
1959 1959
 ## References
1960 1960
 
1961
-* [Photon OS Troubleshooting Guide](https://github.com/vmware/photon/blob/master/docs/photon-os-troubleshooting-guide.md).
1962
-
1963
-The following technical articles and guides appear in the [Photon OS wiki](https://github.com/vmware/photon/wiki): 
1964
-
1965
-* FAQ
1966
-* Running Photon OS on vSphere
1967
-* Running Photon OS on Fusion
1968
-* Install and Configure a Swarm Cluster with DNS Service on Photon OS
1969
-* Install and Configure a Production Ready Mesos Cluster on Photon OS
1970
-* Install and Configure Marathon for Mesos Cluster on Photon OS
1971
-* Install and Configure DCOS CLI for Mesos
1972
-* Install and Configure Mesos DNS on a Mesos Cluster
1961
+* [Photon OS Getting Started Guides](getting-started-guides.md)
1962
+* [Photon OS Troubleshooting Guide](photon-os-troubleshooting-guide.md)
1963
+* [FAQ](Frequently-Asked-Questions.md)
1973 1964
new file mode 100644
1974 1965
Binary files /dev/null and b/docs/photon-logo.png differ
... ...
@@ -44,4 +44,4 @@ List enabled repositories:
44 44
 
45 45
 Tdnf implements a subset of the dnf commands as listed in the [dnf guide](http://dnf.readthedocs.org/en/latest/).
46 46
 
47
-For a description of the tdnf commands and options, including examples, see the [Photon OS Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md).
48 47
\ No newline at end of file
48
+For a description of the tdnf commands and options, including examples, see the [Photon OS Administration Guide](photon-admin-guide.md).
49 49
\ No newline at end of file