Browse code

Revert "migrated 1.0 and 2.0 docs and updated links and TOC"

This reverts commit ef3be43fd0e4620640409e54e683c0985c66ccda.

Change-Id: I9a8d6e50faa990ba76002924fdf6a56c8b379db7
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5889
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>

Anish Swaminathan authored on 2018/10/09 04:35:30
Showing 76 changed files
... ...
@@ -1,5 +1,3 @@
1
-# Photon OS Frequently Asked Questions
2
-
3 1
 * [What is Photon OS?](#q-what-is-photon-os)
4 2
 * [How do I get started with Photon OS?](#q-how-do-i-get-started-with-photon-os)
5 3
 * [Can I upgrade my existing Photon OS 1.0 VMs?](#q-can-i-upgrade-my-existing-photon-os-10-vms)
... ...
@@ -35,11 +33,11 @@ A. Photon OS™ is an open source Linux container host optimized for cloud-nativ
35 35
 
36 36
 ## Q. How do I get started with Photon OS?
37 37
 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.
38
-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).
39
-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
+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).
39
+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).
40 40
 
41 41
 ## Q. Can I upgrade my existing Photon OS 1.0 VMs?
42
-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).
42
+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).
43 43
 
44 44
 ## Q. What kind of support comes with Photon OS?
45 45
 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).
46 46
new file mode 100644
... ...
@@ -0,0 +1,29 @@
0
+![Photon](https://cloud.githubusercontent.com/assets/11306358/9800286/cb4c9eb6-57d1-11e5-916c-6eba8e40fa99.png)
1
+# Welcome to the Photon OS Wiki
2
+
3
+This wiki serves as an unofficial supplement to the documentation that is published in the project .md files. 
4
+
5
+### Photon OS 2.0 GA Available!
6
+
7
+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).
8
+
9
+# Table of Contents
10
+
11
+1. [Frequently Asked Questions](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions)
12
+2. Getting Started Guides
13
+    * [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS)
14
+    * [Running Photon OS on vSphere](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-vSphere)
15
+    * [Running Photon OS on Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion)
16
+    * [Running Photon OS on Workstation](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Workstation)
17
+    * [Running Photon OS on AWS EC2](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute)
18
+    * [Running Photon OS on Microsoft Azure](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Microsoft-Azure)
19
+    * [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine)
20
+
21
+3. Administration Guides
22
+    * [Photon OS Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md)
23
+    * [How to use Photon Management Daemon](https://github.com/vmware/photon/blob/master/docs/pmd-cli.md)
24
+
25
+4. How-To Guides
26
+    * [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)
27
+    * [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)
28
+ 
... ...
@@ -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.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)
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)
... ...
@@ -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,5 +1,3 @@
1
-# Photon OS Administration Guide and Other Documentation
2
-
3 1
 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: 
4 2
 
5 3
 https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md
... ...
@@ -1,13 +1,11 @@
1
-# Introduction
2
-
3
-## 1.1 What is OSTree? How about RPM-OSTree?
1
+### 1.1 What is OSTree? How about RPM-OSTree?
4 2
 
5 3
 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.   
6 4
 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.  
7 5
 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.
8 6
 You may read more about OSTree [here](https://wiki.gnome.org/Projects/OSTree).
9 7
 
10
-## 1.2 Why use RPM-OSTree in Photon?
8
+### 1.2 Why use RPM-OSTree in Photon?
11 9
 There are several important benefits:
12 10
 * 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.
13 11
 * 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.
... ...
@@ -19,34 +17,36 @@ As drawbacks, I would mention:
19 19
 * 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.
20 20
 * Administrators need to be aware about the directories re-mapping specific to OSTree and plan accordingly.
21 21
 
22
-## 1.3 Photon with RPM-OSTree installation profiles
22
+### 1.3 Photon with RPM-OSTree installation profiles
23 23
 Photon takes advantage of RPM-OSTree and offers several installation choices:
24 24
 * Photon RPM-OSTree server - used to compose customized Photon OS installations and to prepare updates. I will call it for short 'server'.
25 25
 * 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'.
26 26
 * 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'.
27 27
 
28
-## 1.4 Terminology
28
+### 1.4 Terminology
29 29
 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.
30 30
 When "ostree" and "rpm-ostree" (in small letters) are encountered, they refer to the usage of the specific Unix commands.   
31 31
 
32 32
 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. 
33 33
 
34
-## 1.5 Sample code
35
-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
+### 1.5 Sample code
35
+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). 
36 36
 The samples assume that the following VMs have been installed - see the steps in the next chapters:
37 37
 * A default host VM named **photon-host-def**.
38 38
 * Two server VMs named **photon-srv1** and **photon-srv2**.
39 39
 * Two custom host VMs named **photon-host-cus1** and **photon-host-cus2**, connected each to the corresponding server during install.
40 40
 
41
-## 1.6 How to read this book
41
+### 1.6 How to read this book
42 42
 I've tried to structure this book to be used both as a sequential read and as a reference documentation.   
43 43
 If you are just interested in deploying a host system and keeping it up to date, then read chapters 2 and 5.   
44 44
 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.  
45 45
 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.
46 46
 
47
-## 1.7 Difference between versions
47
+### 1.7 Difference between versions
48 48
 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.  
49 49
 
50
-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.    
50
+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.    
51 51
 
52 52
 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.
53
+
54
+[[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 55
\ No newline at end of file
... ...
@@ -1,8 +1,6 @@
1
-# Remotes
2
-
3 1
 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.
4 2
 
5
-## 10.1 Listing remotes
3
+### 10.1 Listing remotes
6 4
 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.
7 5
 ```
8 6
 root@photon-host-def [ ~ ]# ostree remote list
... ...
@@ -31,13 +29,13 @@ root@photon-host-cus [ ~ ]# ostree remote show-url photon
31 31
 http://10.118.101.168
32 32
 ```
33 33
 
34
-## 10.2 GPG signature verification
34
+### 10.2 GPG signature verification
35 35
 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.  
36 36
 
37 37
 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.
38 38
 
39 39
 
40
-## 10.3 Switching repositories
40
+### 10.3 Switching repositories
41 41
 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.   
42 42
 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.  
43 43
 This may create confusion and it's one of the reasons I insisted on creating your own scheme of versioning.
... ...
@@ -45,9 +43,9 @@ This may create confusion and it's one of the reasons I insisted on creating you
45 45
 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.  
46 46
 A better solution would be to add a new remote that will identify where the commits come from.
47 47
 
48
-## 10.4 Adding and removing remotes
48
+### 10.4 Adding and removing remotes
49 49
 
50
-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. 
50
+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. 
51 51
 ```
52 52
 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
53 53
 root@photon-host-cus [ ~ ]# ostree remote list
... ...
@@ -72,10 +70,10 @@ root@photon-host-cus [ ~ ]# ostree remote list
72 72
 photon
73 73
 ```
74 74
 
75
-## 10.5 List available branches
75
+### 10.5 List available branches
76 76
 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).  
77 77
 
78
-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**.
78
+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**.
79 79
 
80 80
 ```
81 81
 root@photon-host-cus [ ~ ]# ostree remote refs photon2 
... ...
@@ -87,3 +85,5 @@ photon2:photon/2.0/x86_64/minimal
87 87
 ###10.6 Switching branches (rebasing)
88 88
 
89 89
 
90
+[[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]]
91
+  
... ...
@@ -1,9 +1,7 @@
1
-# Running container applications between bootable images
2
-
3 1
 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.   
4 2
 We are going to do this twice: first, to verify an existing bootable image installed in parallel and then create a new one.
5 3
 
6
-## 11.1 Downloading a docker container appliance
4
+### 11.1 Downloading a docker container appliance
7 5
 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). 
8 6
 ```
9 7
 root@sample-host-def [ ~ ]# systemctl status docker
... ...
@@ -130,7 +128,7 @@ CONTAINER ID    IMAGE   COMMAND       CREATED         STATUS
130 130
 d07ebca78051    ubuntu  "/bin/bash"   16 minutes ago  Up 5 seconds                        kickass_hodgkin
131 131
 ```
132 132
 
133
-## 11.2 Rebooting into an existing image
133
+### 11.2 Rebooting into an existing image
134 134
 Now let's reboot the machine and select the other image. First, we'll verify that the docker daemon is automaically started.
135 135
 ```
136 136
 root@photon-host-cus1 [ ~ ]# systemctl status docker
... ...
@@ -156,7 +154,7 @@ Ubuntu file
156 156
 root@57dcac5d0490:/# echo "booted into existing image" >> /home/myfile
157 157
 root@57dcac5d0490:/# exit
158 158
 ```
159
-## 11.3 Reboot into a newly created image
159
+### 11.3 Reboot into a newly created image
160 160
 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).
161 161
 ```
162 162
 root@photon-host-cus1 [ ~ ]# rpm-ostree status
... ...
@@ -209,3 +207,5 @@ Ubuntu file
209 209
 booted into existing image
210 210
 root@57dcac5d0490:/# echo "booted into new image" >> /home/myfile
211 211
 ```
212
+
213
+[[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 214
\ No newline at end of file
... ...
@@ -1,22 +1,20 @@
1
-# Installing a host against default server repository
2
-
3 1
 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.  
4 2
 Photon OS 2.0 does not offer a 'default host' installation. See chapter 7 and 12 for other options. 
5 3
 
6
-## 2.1 Who is this for?  
4
+### 2.1 Who is this for?  
7 5
 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.
8 6
 
9 7
 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.    
10 8
 
11 9
 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.
12 10
 
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.
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.
15 13
 
16 14
 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.
17 15
 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:   
18 16
 
19
-[Running Project Photon on Fusion](Running-Project-Photon-on-Fusion.md).  
17
+[[Running Project Photon on Fusion|Running-Project-Photon-on-Fusion]].  
20 18
 
21 19
 Select the **Photon OSTree Host** option.
22 20
 
... ...
@@ -33,6 +31,8 @@ When installation is over, the VM will reboot and will show in grub VMWare Photo
33 33
 
34 34
 ![PhotonHostFirstRebootGrub](https://cloud.githubusercontent.com/assets/13158414/14757877/155614ec-08ad-11e6-9e36-b43f77b6fb69.png)  
35 35
 
36
-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).
36
+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]].
37
+
38
+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]].  
37 39
 
38
-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
+[[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 41
\ No newline at end of file
40 42
new file mode 100644
... ...
@@ -0,0 +1,256 @@
0
+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.
1
+
2
+### 4.1 Commit history
3
+For a host that is freshly installed, there is only one commit in the history for the only branch.
4
+```
5
+root@photon-host [ ~ ]# ostree log photon/1.0/x86_64/minimal
6
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
7
+Date:  2016-06-07 14:06:17 +0000
8
+Version: 1.0_minimal
9
+```
10
+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.
11
+```
12
+root@photon-host [ ~ ]# ostree log 56ef
13
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
14
+Date:  2016-06-07 14:06:17 +0000
15
+Version: 1.0_minimal
16
+```
17
+```
18
+root@photon-host [ ~ ]# ostree log 56ef --raw
19
+commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
20
+({'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])
21
+```
22
+
23
+### 4.2 Listing file mappings
24
+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. 
25
+```
26
+root@photon-host [ ~ ]# ostree ls photon/1.0/x86_64/minimal
27
+d00755 0 0      0 /
28
+l00777 0 0      0 /bin -> usr/bin
29
+l00777 0 0      0 /home -> var/home
30
+l00777 0 0      0 /lib -> usr/lib
31
+l00777 0 0      0 /lib64 -> usr/lib
32
+l00777 0 0      0 /media -> run/media
33
+l00777 0 0      0 /mnt -> var/mnt
34
+l00777 0 0      0 /opt -> var/opt
35
+l00777 0 0      0 /ostree -> sysroot/ostree
36
+l00777 0 0      0 /root -> var/roothome
37
+l00777 0 0      0 /sbin -> usr/sbin
38
+l00777 0 0      0 /srv -> var/srv
39
+l00777 0 0      0 /tmp -> sysroot/tmp
40
+d00755 0 0      0 /boot
41
+d00755 0 0      0 /dev
42
+d00755 0 0      0 /proc
43
+d00755 0 0      0 /run
44
+d00755 0 0      0 /sys
45
+d00755 0 0      0 /sysroot
46
+d00755 0 0      0 /usr
47
+d00755 0 0      0 /var
48
+```
49
+Extra columns can be added like checksum (-C) and extended attributes (-X). 
50
+```
51
+root@photon-host [ /usr/share/man/man1 ]# ostree ls photon/1.0/x86_64/minimal -C
52
+d00755 0 0      0 3c6b714407d05ed59dfc4a1c3374961d50a353d5f120b440d06035f2f829cf5f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /
53
+l00777 0 0      0 389846c2702216e1367c8dfb68326a6b93ccf5703c89c93979052a9bf359608e /bin -> usr/bin
54
+l00777 0 0      0 4344c10bf4931483f918496534f12ed9b50dc6a2cead35e3cd9dd898d6ac9414 /home -> var/home
55
+l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib -> usr/lib
56
+l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib64 -> usr/lib
57
+l00777 0 0      0 75317a3df11447c470ffdd63dde045450ca97dfb2a97a0f3f6a21a5da66f737c /media -> run/media
58
+l00777 0 0      0 97c55dbe24e8f3aecfd3f3e5b3f44646fccbb39799807d37a217e9c871da108b /mnt -> var/mnt
59
+l00777 0 0      0 46b1abbd27a846a9257a8d8c9fc4b384ac0888bdb8ac0d6a2d5de72715bd5092 /opt -> var/opt
60
+l00777 0 0      0 d37269e3f46023fd0275212473e07011894cdf4148cbf3fb5758a7e9471dad8e /ostree -> sysroot/ostree
61
+l00777 0 0      0 6f800e74eed172661278d1e1f09e389a6504dcd3358618e1c1618f91f9d33601 /root -> var/roothome
62
+l00777 0 0      0 e0bead7be9323b06bea05cb9b66eb151839989e3a4e5d1a93e09a36919e91818 /sbin -> usr/sbin
63
+l00777 0 0      0 5d4250bba1ed300f793fa9769474351ee5cebd71e8339078af7ebfbe6256d9b5 /srv -> var/srv
64
+l00777 0 0      0 364fbd62f91ca1e06eb7dbd50c93de8976f2cea633658e2dbe803ce6f7490c09 /tmp -> sysroot/tmp
65
+d00755 0 0      0 1e4f98d92b35c453d8f61e668aea9fae7ca1863f6609db787374b4ad5caf3b2f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /boot
66
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /dev
67
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /proc
68
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /run
69
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sys
70
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sysroot
71
+d00755 0 0      0 b072f4b3e995a491c04d88636401ca156e80f103b002d724ae76c07174ee4c74 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /usr
72
+d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /var
73
+```
74
+
75
+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.
76
+```
77
+root@photon-host [ /usr/share/rpm-ostree ]# ostree ls photon/1.0/x86_64/minimal -R | grep -e '[Rr]pm-\?[Oo]stree'
78
+l00777 0 0      0 /usr/bin/atomic -> rpm-ostree
79
+-00755 0 0 131104 /usr/bin/rpm-ostree
80
+l00777 0 0      0 /usr/lib/librpmostree-1.so.1 -> librpmostree-1.so.1.0.0
81
+-00755 0 0 104272 /usr/lib/librpmostree-1.so.1.0.0
82
+-00644 0 0   1296 /usr/lib/girepository-1.0/RpmOstree-1.0.typelib
83
+d00755 0 0      0 /usr/lib/rpm-ostree
84
+-00644 0 0    622 /usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
85
+-00644 0 0    717 /usr/lib/tmpfiles.d/rpm-ostree-autovar.conf
86
+d00755 0 0      0 /usr/share/rpm-ostree
87
+-00644 0 0   1132 /usr/share/rpm-ostree/treefile.json
88
+```
89
+
90
+**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.
91
+```
92
+root@photon-host [ /usr/share/rpm-ostree ]# ls -l /usr/share/man/man1 
93
+total 0
94
+```
95
+
96
+
97
+### 4.3 Listing configuration changes
98
+
99
+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:
100
+```
101
+root@photon-host [ ~ ]# ostree admin config-diff
102
+M    mtab
103
+M    ssh/sshd_config
104
+M    shadow
105
+M    hosts
106
+M    fstab
107
+M    machine-id
108
+A    ssh/ssh_host_rsa_key
109
+A    ssh/ssh_host_rsa_key.pub
110
+A    ssh/ssh_host_dsa_key
111
+A    ssh/ssh_host_dsa_key.pub
112
+A    ssh/ssh_host_ecdsa_key
113
+A    ssh/ssh_host_ecdsa_key.pub
114
+A    ssh/ssh_host_ed25519_key
115
+A    ssh/ssh_host_ed25519_key.pub
116
+A    ssh/sshd.pid
117
+A    tmpfiles.d/postinstall.sh
118
+A    udev/hwdb.bin
119
+A    resolv.conf
120
+A    hostname
121
+A    postinstall
122
+A    localtime
123
+A    .updated
124
+```
125
+
126
+### 4.4 Listing packages
127
+As expected, there is an rpm-ostree command that lists all the packages for that branch, extracted from RPM database.   
128
+```
129
+root@photon-host [ ~ ]# rpm-ostree db list photon/1.0/x86_64/minimal
130
+ostree commit: photon/1.0/x86_64/minimal (56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4)
131
+ Linux-PAM-1.2.1-3.ph1.x86_64
132
+ attr-2.4.47-3.ph1.x86_64
133
+ autogen-libopts-5.18.7-2.ph1.x86_64
134
+ bash-4.3.30-4.ph1.x86_64
135
+ bc-1.06.95-3.ph1.x86_64
136
+ binutils-2.25.1-2.ph1.x86_64
137
+ bridge-utils-1.5-2.ph1.x86_64
138
+ bzip2-1.0.6-5.ph1.x86_64
139
+ ca-certificates-20160109-5.ph1.x86_64
140
+ coreutils-8.25-2.ph1.x86_64
141
+ cpio-2.12-2.ph1.x86_64
142
+ cracklib-2.9.6-2.ph1.x86_64
143
+ cracklib-dicts-2.9.6-2.ph1.x86_64
144
+ curl-7.47.1-2.ph1.x86_64
145
+ db-6.1.26-2.ph1.x86_64
146
+ dbus-1.8.8-5.ph1.x86_64
147
+ device-mapper-2.02.141-5.ph1.x86_64
148
+ device-mapper-libs-2.02.141-5.ph1.x86_64
149
+ docker-1.11.0-5.ph1.x86_64
150
+ dracut-044-3.ph1.x86_64
151
+ dracut-tools-044-3.ph1.x86_64
152
+ e2fsprogs-1.42.13-2.ph1.x86_64
153
+ elfutils-libelf-0.165-2.ph1.x86_64
154
+ expat-2.1.0-2.ph1.x86_64
155
+ file-5.24-2.ph1.x86_64
156
+ filesystem-1.0-7.ph1.x86_64
157
+ findutils-4.6.0-2.ph1.x86_64
158
+ flex-2.5.39-2.ph1.x86_64
159
+ gdbm-1.11-2.ph1.x86_64
160
+ glib-2.47.6-2.ph1.x86_64
161
+ glib-networking-2.46.1-2.ph1.x86_64
162
+ glibc-2.22-8.ph1.x86_64
163
+ gmp-6.0.0a-3.ph1.x86_64
164
+ gnutls-3.4.11-2.ph1.x86_64
165
+ gobject-introspection-1.46.0-2.ph1.x86_64
166
+ gpgme-1.6.0-2.ph1.x86_64
167
+ grep-2.21-2.ph1.x86_64
168
+ grub2-2.02-4.ph1.x86_64
169
+ gzip-1.6-2.ph1.x86_64
170
+ hawkey-2014.1-4.ph1.x86_64
171
+ iana-etc-2.30-2.ph1.noarch
172
+ iproute2-4.2.0-2.ph1.x86_64
173
+ iptables-1.6.0-4.ph1.x86_64
174
+ iputils-20151218-3.ph1.x86_64
175
+ json-glib-1.0.4-2.ph1.x86_64
176
+ kmod-21-4.ph1.x86_64
177
+ krb5-1.14-4.ph1.x86_64
178
+ libarchive-3.1.2-6.ph1.x86_64
179
+ libassuan-2.4.2-2.ph1.x86_64
180
+ libcap-2.25-2.ph1.x86_64
181
+ libffi-3.2.1-2.ph1.x86_64
182
+ libgcc-5.3.0-3.ph1.x86_64
183
+ libgcrypt-1.6.5-2.ph1.x86_64
184
+ libgomp-5.3.0-3.ph1.x86_64
185
+ libgpg-error-1.21-2.ph1.x86_64
186
+ libgsystem-2015.1-2.ph1.x86_64
187
+ libhif-0.2.2-2.ph1.x86_64
188
+ librepo-1.7.17-2.ph1.x86_64
189
+ libselinux-2.5-2.ph1.x86_64
190
+ libsepol-2.5-2.ph1.x86_64
191
+ libsolv-0.6.19-2.ph1.x86_64
192
+ libsoup-2.53.90-2.ph1.x86_64
193
+ libstdc++-5.3.0-3.ph1.x86_64
194
+ libtasn1-4.7-2.ph1.x86_64
195
+ libtool-2.4.6-2.ph1.x86_64
196
+ libxml2-2.9.4-1.ph1.x86_64
197
+ linux-4.4.8-6.ph1.x86_64
198
+ lua-5.3.2-2.ph1.x86_64
199
+ m4-1.4.17-2.ph1.x86_64
200
+ mkinitcpio-19-2.ph1.x86_64
201
+ mpfr-3.1.3-2.ph1.x86_64
202
+ ncurses-6.0-2.ph1.x86_64
203
+ net-tools-1.60-7.ph1.x86_64
204
+ nettle-3.2-2.ph1.x86_64
205
+ nspr-4.12-2.ph1.x86_64
206
+ nss-3.21-2.ph1.x86_64
207
+ nss-altfiles-2.19.1-2.ph1.x86_64
208
+ openssh-7.1p2-3.ph1.x86_64
209
+ openssl-1.0.2h-2.ph1.x86_64
210
+ ostree-2015.7-5.ph1.x86_64
211
+ pcre-8.38-3.ph1.x86_64
212
+ photon-release-1.0-5.ph1.noarch
213
+ pkg-config-0.28-2.ph1.x86_64
214
+ popt-1.16-2.ph1.x86_64
215
+ procps-ng-3.3.11-2.ph1.x86_64
216
+ python2-2.7.11-4.ph1.x86_64
217
+ python2-libs-2.7.11-4.ph1.x86_64
218
+ readline-6.3-4.ph1.x86_64
219
+ rpm-4.11.2-10.ph1.x86_64
220
+ rpm-ostree-2015.7-2.ph1.x86_64
221
+ sed-4.2.2-2.ph1.x86_64
222
+ shadow-4.2.1-7.ph1.x86_64
223
+ sqlite-autoconf-3.11.0-2.ph1.x86_64
224
+ systemd-228-21.ph1.x86_64
225
+ tcsh-6.19.00-4.ph1.x86_64
226
+ util-linux-2.27.1-2.ph1.x86_64
227
+ vim-7.4-5.ph1.x86_64
228
+ which-2.21-2.ph1.x86_64
229
+ xz-5.2.2-2.ph1.x86_64
230
+ zlib-1.2.8-3.ph1.x86_64
231
+```
232
+
233
+### 4.5 Querying for package details
234
+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.
235
+```
236
+root@photon-host [ /usr/share/man/man1 ]# rpm -ql  rpm-ostree
237
+/usr/bin/atomic
238
+/usr/bin/rpm-ostree
239
+/usr/lib/girepository-1.0/RpmOstree-1.0.typelib
240
+/usr/lib/librpmostree-1.so.1
241
+/usr/lib/librpmostree-1.so.1.0.0
242
+/usr/lib/rpm-ostree
243
+/usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
244
+/usr/share/man/man1/atomic.1.gz
245
+/usr/share/man/man1/rpm-ostree.1.gz
246
+```
247
+### 4.6 Why am I unable to install, update or delete packages?
248
+
249
+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?
250
+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.
251
+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.
252
+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.
253
+
254
+[[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]] 
255
+
0 256
deleted file mode 100644
... ...
@@ -1,256 +0,0 @@
1
-# Querying For Commit File and Package Metadata
2
-
3
-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.
4
-
5
-## 4.1 Commit history
6
-For a host that is freshly installed, there is only one commit in the history for the only branch.
7
-```
8
-root@photon-host [ ~ ]# ostree log photon/1.0/x86_64/minimal
9
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
10
-Date:  2016-06-07 14:06:17 +0000
11
-Version: 1.0_minimal
12
-```
13
-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.
14
-```
15
-root@photon-host [ ~ ]# ostree log 56ef
16
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
17
-Date:  2016-06-07 14:06:17 +0000
18
-Version: 1.0_minimal
19
-```
20
-```
21
-root@photon-host [ ~ ]# ostree log 56ef --raw
22
-commit 56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4
23
-({'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])
24
-```
25
-
26
-## 4.2 Listing file mappings
27
-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. 
28
-```
29
-root@photon-host [ ~ ]# ostree ls photon/1.0/x86_64/minimal
30
-d00755 0 0      0 /
31
-l00777 0 0      0 /bin -> usr/bin
32
-l00777 0 0      0 /home -> var/home
33
-l00777 0 0      0 /lib -> usr/lib
34
-l00777 0 0      0 /lib64 -> usr/lib
35
-l00777 0 0      0 /media -> run/media
36
-l00777 0 0      0 /mnt -> var/mnt
37
-l00777 0 0      0 /opt -> var/opt
38
-l00777 0 0      0 /ostree -> sysroot/ostree
39
-l00777 0 0      0 /root -> var/roothome
40
-l00777 0 0      0 /sbin -> usr/sbin
41
-l00777 0 0      0 /srv -> var/srv
42
-l00777 0 0      0 /tmp -> sysroot/tmp
43
-d00755 0 0      0 /boot
44
-d00755 0 0      0 /dev
45
-d00755 0 0      0 /proc
46
-d00755 0 0      0 /run
47
-d00755 0 0      0 /sys
48
-d00755 0 0      0 /sysroot
49
-d00755 0 0      0 /usr
50
-d00755 0 0      0 /var
51
-```
52
-Extra columns can be added like checksum (-C) and extended attributes (-X). 
53
-```
54
-root@photon-host [ /usr/share/man/man1 ]# ostree ls photon/1.0/x86_64/minimal -C
55
-d00755 0 0      0 3c6b714407d05ed59dfc4a1c3374961d50a353d5f120b440d06035f2f829cf5f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /
56
-l00777 0 0      0 389846c2702216e1367c8dfb68326a6b93ccf5703c89c93979052a9bf359608e /bin -> usr/bin
57
-l00777 0 0      0 4344c10bf4931483f918496534f12ed9b50dc6a2cead35e3cd9dd898d6ac9414 /home -> var/home
58
-l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib -> usr/lib
59
-l00777 0 0      0 f11902ca9d69a80df33918534a3e443251fd0aa7f94b76301e1f55e52aed29dd /lib64 -> usr/lib
60
-l00777 0 0      0 75317a3df11447c470ffdd63dde045450ca97dfb2a97a0f3f6a21a5da66f737c /media -> run/media
61
-l00777 0 0      0 97c55dbe24e8f3aecfd3f3e5b3f44646fccbb39799807d37a217e9c871da108b /mnt -> var/mnt
62
-l00777 0 0      0 46b1abbd27a846a9257a8d8c9fc4b384ac0888bdb8ac0d6a2d5de72715bd5092 /opt -> var/opt
63
-l00777 0 0      0 d37269e3f46023fd0275212473e07011894cdf4148cbf3fb5758a7e9471dad8e /ostree -> sysroot/ostree
64
-l00777 0 0      0 6f800e74eed172661278d1e1f09e389a6504dcd3358618e1c1618f91f9d33601 /root -> var/roothome
65
-l00777 0 0      0 e0bead7be9323b06bea05cb9b66eb151839989e3a4e5d1a93e09a36919e91818 /sbin -> usr/sbin
66
-l00777 0 0      0 5d4250bba1ed300f793fa9769474351ee5cebd71e8339078af7ebfbe6256d9b5 /srv -> var/srv
67
-l00777 0 0      0 364fbd62f91ca1e06eb7dbd50c93de8976f2cea633658e2dbe803ce6f7490c09 /tmp -> sysroot/tmp
68
-d00755 0 0      0 1e4f98d92b35c453d8f61e668aea9fae7ca1863f6609db787374b4ad5caf3b2f 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /boot
69
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /dev
70
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /proc
71
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /run
72
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sys
73
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /sysroot
74
-d00755 0 0      0 b072f4b3e995a491c04d88636401ca156e80f103b002d724ae76c07174ee4c74 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /usr
75
-d00755 0 0      0 6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d 446a0ef11b7cc167f3b603e585c7eeeeb675faa412d5ec73f62988eb0b6c5488 /var
76
-```
77
-
78
-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.
79
-```
80
-root@photon-host [ /usr/share/rpm-ostree ]# ostree ls photon/1.0/x86_64/minimal -R | grep -e '[Rr]pm-\?[Oo]stree'
81
-l00777 0 0      0 /usr/bin/atomic -> rpm-ostree
82
--00755 0 0 131104 /usr/bin/rpm-ostree
83
-l00777 0 0      0 /usr/lib/librpmostree-1.so.1 -> librpmostree-1.so.1.0.0
84
--00755 0 0 104272 /usr/lib/librpmostree-1.so.1.0.0
85
--00644 0 0   1296 /usr/lib/girepository-1.0/RpmOstree-1.0.typelib
86
-d00755 0 0      0 /usr/lib/rpm-ostree
87
--00644 0 0    622 /usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
88
--00644 0 0    717 /usr/lib/tmpfiles.d/rpm-ostree-autovar.conf
89
-d00755 0 0      0 /usr/share/rpm-ostree
90
--00644 0 0   1132 /usr/share/rpm-ostree/treefile.json
91
-```
92
-
93
-**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.
94
-```
95
-root@photon-host [ /usr/share/rpm-ostree ]# ls -l /usr/share/man/man1 
96
-total 0
97
-```
98
-
99
-
100
-## 4.3 Listing configuration changes
101
-
102
-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:
103
-```
104
-root@photon-host [ ~ ]# ostree admin config-diff
105
-M    mtab
106
-M    ssh/sshd_config
107
-M    shadow
108
-M    hosts
109
-M    fstab
110
-M    machine-id
111
-A    ssh/ssh_host_rsa_key
112
-A    ssh/ssh_host_rsa_key.pub
113
-A    ssh/ssh_host_dsa_key
114
-A    ssh/ssh_host_dsa_key.pub
115
-A    ssh/ssh_host_ecdsa_key
116
-A    ssh/ssh_host_ecdsa_key.pub
117
-A    ssh/ssh_host_ed25519_key
118
-A    ssh/ssh_host_ed25519_key.pub
119
-A    ssh/sshd.pid
120
-A    tmpfiles.d/postinstall.sh
121
-A    udev/hwdb.bin
122
-A    resolv.conf
123
-A    hostname
124
-A    postinstall
125
-A    localtime
126
-A    .updated
127
-```
128
-
129
-## 4.4 Listing packages
130
-As expected, there is an rpm-ostree command that lists all the packages for that branch, extracted from RPM database.   
131
-```
132
-root@photon-host [ ~ ]# rpm-ostree db list photon/1.0/x86_64/minimal
133
-ostree commit: photon/1.0/x86_64/minimal (56ef687f1319604b7900a232715718d26ca407de7e1dc89251b206f8e255dcb4)
134
- Linux-PAM-1.2.1-3.ph1.x86_64
135
- attr-2.4.47-3.ph1.x86_64
136
- autogen-libopts-5.18.7-2.ph1.x86_64
137
- bash-4.3.30-4.ph1.x86_64
138
- bc-1.06.95-3.ph1.x86_64
139
- binutils-2.25.1-2.ph1.x86_64
140
- bridge-utils-1.5-2.ph1.x86_64
141
- bzip2-1.0.6-5.ph1.x86_64
142
- ca-certificates-20160109-5.ph1.x86_64
143
- coreutils-8.25-2.ph1.x86_64
144
- cpio-2.12-2.ph1.x86_64
145
- cracklib-2.9.6-2.ph1.x86_64
146
- cracklib-dicts-2.9.6-2.ph1.x86_64
147
- curl-7.47.1-2.ph1.x86_64
148
- db-6.1.26-2.ph1.x86_64
149
- dbus-1.8.8-5.ph1.x86_64
150
- device-mapper-2.02.141-5.ph1.x86_64
151
- device-mapper-libs-2.02.141-5.ph1.x86_64
152
- docker-1.11.0-5.ph1.x86_64
153
- dracut-044-3.ph1.x86_64
154
- dracut-tools-044-3.ph1.x86_64
155
- e2fsprogs-1.42.13-2.ph1.x86_64
156
- elfutils-libelf-0.165-2.ph1.x86_64
157
- expat-2.1.0-2.ph1.x86_64
158
- file-5.24-2.ph1.x86_64
159
- filesystem-1.0-7.ph1.x86_64
160
- findutils-4.6.0-2.ph1.x86_64
161
- flex-2.5.39-2.ph1.x86_64
162
- gdbm-1.11-2.ph1.x86_64
163
- glib-2.47.6-2.ph1.x86_64
164
- glib-networking-2.46.1-2.ph1.x86_64
165
- glibc-2.22-8.ph1.x86_64
166
- gmp-6.0.0a-3.ph1.x86_64
167
- gnutls-3.4.11-2.ph1.x86_64
168
- gobject-introspection-1.46.0-2.ph1.x86_64
169
- gpgme-1.6.0-2.ph1.x86_64
170
- grep-2.21-2.ph1.x86_64
171
- grub2-2.02-4.ph1.x86_64
172
- gzip-1.6-2.ph1.x86_64
173
- hawkey-2014.1-4.ph1.x86_64
174
- iana-etc-2.30-2.ph1.noarch
175
- iproute2-4.2.0-2.ph1.x86_64
176
- iptables-1.6.0-4.ph1.x86_64
177
- iputils-20151218-3.ph1.x86_64
178
- json-glib-1.0.4-2.ph1.x86_64
179
- kmod-21-4.ph1.x86_64
180
- krb5-1.14-4.ph1.x86_64
181
- libarchive-3.1.2-6.ph1.x86_64
182
- libassuan-2.4.2-2.ph1.x86_64
183
- libcap-2.25-2.ph1.x86_64
184
- libffi-3.2.1-2.ph1.x86_64
185
- libgcc-5.3.0-3.ph1.x86_64
186
- libgcrypt-1.6.5-2.ph1.x86_64
187
- libgomp-5.3.0-3.ph1.x86_64
188
- libgpg-error-1.21-2.ph1.x86_64
189
- libgsystem-2015.1-2.ph1.x86_64
190
- libhif-0.2.2-2.ph1.x86_64
191
- librepo-1.7.17-2.ph1.x86_64
192
- libselinux-2.5-2.ph1.x86_64
193
- libsepol-2.5-2.ph1.x86_64
194
- libsolv-0.6.19-2.ph1.x86_64
195
- libsoup-2.53.90-2.ph1.x86_64
196
- libstdc++-5.3.0-3.ph1.x86_64
197
- libtasn1-4.7-2.ph1.x86_64
198
- libtool-2.4.6-2.ph1.x86_64
199
- libxml2-2.9.4-1.ph1.x86_64
200
- linux-4.4.8-6.ph1.x86_64
201
- lua-5.3.2-2.ph1.x86_64
202
- m4-1.4.17-2.ph1.x86_64
203
- mkinitcpio-19-2.ph1.x86_64
204
- mpfr-3.1.3-2.ph1.x86_64
205
- ncurses-6.0-2.ph1.x86_64
206
- net-tools-1.60-7.ph1.x86_64
207
- nettle-3.2-2.ph1.x86_64
208
- nspr-4.12-2.ph1.x86_64
209
- nss-3.21-2.ph1.x86_64
210
- nss-altfiles-2.19.1-2.ph1.x86_64
211
- openssh-7.1p2-3.ph1.x86_64
212
- openssl-1.0.2h-2.ph1.x86_64
213
- ostree-2015.7-5.ph1.x86_64
214
- pcre-8.38-3.ph1.x86_64
215
- photon-release-1.0-5.ph1.noarch
216
- pkg-config-0.28-2.ph1.x86_64
217
- popt-1.16-2.ph1.x86_64
218
- procps-ng-3.3.11-2.ph1.x86_64
219
- python2-2.7.11-4.ph1.x86_64
220
- python2-libs-2.7.11-4.ph1.x86_64
221
- readline-6.3-4.ph1.x86_64
222
- rpm-4.11.2-10.ph1.x86_64
223
- rpm-ostree-2015.7-2.ph1.x86_64
224
- sed-4.2.2-2.ph1.x86_64
225
- shadow-4.2.1-7.ph1.x86_64
226
- sqlite-autoconf-3.11.0-2.ph1.x86_64
227
- systemd-228-21.ph1.x86_64
228
- tcsh-6.19.00-4.ph1.x86_64
229
- util-linux-2.27.1-2.ph1.x86_64
230
- vim-7.4-5.ph1.x86_64
231
- which-2.21-2.ph1.x86_64
232
- xz-5.2.2-2.ph1.x86_64
233
- zlib-1.2.8-3.ph1.x86_64
234
-```
235
-
236
-## 4.5 Querying for package details
237
-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.
238
-```
239
-root@photon-host [ /usr/share/man/man1 ]# rpm -ql  rpm-ostree
240
-/usr/bin/atomic
241
-/usr/bin/rpm-ostree
242
-/usr/lib/girepository-1.0/RpmOstree-1.0.typelib
243
-/usr/lib/librpmostree-1.so.1
244
-/usr/lib/librpmostree-1.so.1.0.0
245
-/usr/lib/rpm-ostree
246
-/usr/lib/rpm-ostree/tmpfiles-ostree-integration.conf
247
-/usr/share/man/man1/atomic.1.gz
248
-/usr/share/man/man1/rpm-ostree.1.gz
249
-```
250
-## 4.6 Why am I unable to install, update or delete packages?
251
-
252
-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?
253
-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.
254
-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.
255
-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.
256
-
... ...
@@ -1,6 +1,4 @@
1
-# Host Updating Operations 
2
-
3
-## 5.1 Is it an update or an upgrade?
1
+### 5.1 Is it an update or an upgrade?
4 2
 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".
5 3
 
6 4
 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.
... ...
@@ -12,7 +10,7 @@ The reverse operation of an upgrade is a "rollback" and fortunately it's not nam
12 12
 As we'll see in a future chapter, a jump to a different Refspec (branch) is also supported and it's named "rebase".
13 13
 
14 14
 
15
-## 5.2 Incremental upgrade
15
+### 5.2 Incremental upgrade
16 16
 To check if there are any updates available, one would execute:
17 17
 ```
18 18
 root@photon-host-def [ ~ ]# rpm-ostree upgrade
... ...
@@ -97,7 +95,7 @@ root@photon-host-def [ ~ ]# ostree admin config-diff --print-current-dir
97 97
 ```
98 98
 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.
99 99
 
100
-## 5.3 Listing file differences   
100
+### 5.3 Listing file differences   
101 101
 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.
102 102
 ```
103 103
 root@photon-host-def [ ~ ]# ostree diff 2940 82bc
... ...
@@ -345,7 +343,7 @@ A    /usr/share/awk/walkarray.awk
345 345
 A    /usr/share/awk/zerofile.awk
346 346
 ```
347 347
  
348
-## 5.4 Listing package differences
348
+### 5.4 Listing package differences
349 349
 We can also look at package differences, as you expect, using the right tool for the job.
350 350
 ```
351 351
 root@photon-host-def [ ~ ]# rpm-ostree db diff 2940 82bc    
... ...
@@ -357,7 +355,7 @@ Added:
357 357
  wget-1.15-1.ph1.x86_64
358 358
 ```
359 359
 
360
-## 5.5 Rollback
360
+### 5.5 Rollback
361 361
 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.
362 362
 ```
363 363
 root@photon-host-def [ ~ ]# rpm-ostree rollback
... ...
@@ -386,7 +384,7 @@ root@photon-host-def [ ~ ]# ostree admin config-diff --print-current-dir
386 386
 /ostree/deploy/photon/deploy/2940e10c4d90ce6da572cbaeeff7b511cab4a64c280bd5969333dd2fca57cfa8.0 
387 387
 ```
388 388
 
389
-## 5.6 Deleting a deployed filetree
389
+### 5.6 Deleting a deployed filetree
390 390
 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.  
391 391
 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).  
392 392
 You cannot delete the default bootable filetree, so passing 0 will result in an error.  
... ...
@@ -436,7 +434,7 @@ Updating from: photon:photon/1.0/x86_64/minimal
436 436
 +wget-1.15-1.ph1.x86_64
437 437
 ```
438 438
 
439
-## 5.7 Version skipping upgrade
439
+### 5.7 Version skipping upgrade
440 440
 
441 441
 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.
442 442
 ```
... ...
@@ -481,7 +479,7 @@ error: Refspec '82bc' not found
481 481
 ```
482 482
 Interesting fact: The metadata for commit 82bc has been removed from the local repo!  
483 483
 
484
-## 5.8 Tracking parent commits
484
+### 5.8 Tracking parent commits
485 485
 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:
486 486
 ```
487 487
 root@photon-host-def [ ~ ]# rpm-ostree db diff  092e^ 092e
... ...
@@ -492,7 +490,7 @@ error: No such metadata object 82bca728eadb7292d568404484ad6889c3f6303600ca8c743
492 492
 ````
493 493
 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.
494 494
 
495
-## 5.9 Resetting a branch to a previous commit
495
+### 5.9 Resetting a branch to a previous commit
496 496
 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).
497 497
 ```
498 498
 root@photon-host-def [ ~ ]# ostree reset photon:photon/1.0/x86_64/minimal 2940
... ...
@@ -1,18 +1,16 @@
1
-# Installing a server
2
-
3 1
 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.  
4 2
 
5 3
 The first step is to download the ISO for the desired release, if you have not done that already:  
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)  
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]]  
9 7
 
10 8
 Installation steps are the same to all Photon OS versions, except that under the hood:
11 9
 * Photon 1.0 sets up a 'minimal' sample file tree, so it's ready to accept host pull/install requests right away.
12 10
 * 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.  
13 11
 
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.
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.
16 14
 
17 15
 ![PhotonChooseServer](https://cloud.githubusercontent.com/assets/13158414/14802949/1c5f92b8-0b0a-11e6-8d69-96e62218dfcb.png)
18 16
 
... ...
@@ -28,22 +26,23 @@ In order for hosts to access server's OSTree repo via http, an Apache web server
28 28
 The server's IP address will be passed to the Photon RPM-OSTree hosts that want to connect to this server.  
29 29
 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.
30 30
 
31
-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.
31
+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.
32 32
 
33
-## 6.2 Composing your first OSTree repo  
33
+### 6.2 Composing your first OSTree repo  
34 34
 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.
35 35
 ```
36 36
 root [ ~ ]# cd /srv/rpm-ostree
37 37
 root [ /srv/rpm-ostree ]# ostree --repo=repo init --mode=archive-z2
38 38
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
39 39
 ```
40
-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.   
40
+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.   
41 41
 
42
-## 6.2 Automated install of a server via kickstart
42
+### 6.2 Automated install of a server via kickstart
43 43
 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.
44 44
 
45
-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:  
45
+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:  
46 46
 ```
47 47
 "type": "ostree_server"
48 48
 ```
49 49
 
50
+[[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]]
50 51
\ No newline at end of file
... ...
@@ -1,16 +1,14 @@
1
-# Installing a Photon RPM-OStree host against a custom server repository
2
-
3 1
 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.
4 2
 
5 3
 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.
6 4
 
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).  
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]].  
9 7
 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".  
10 8
 
11 9
 ![PhotonHostCustom](https://cloud.githubusercontent.com/assets/13158414/14804629/fe17c7d4-0b19-11e6-9cc6-7e79f768b7b1.png)
12 10
 
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).  
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]].  
14 12
 
15 13
 ![PhotonHostCustomURL](https://cloud.githubusercontent.com/assets/13158414/14804647/185f1aa2-0b1a-11e6-9e44-e2f54592da35.png)
16 14
 
... ...
@@ -19,14 +17,14 @@ You will then be asked to enter a Refspec. Leave the default 'photon/1.0/x86_64/
19 19
 ![PhotonHostCustomRefspec](https://cloud.githubusercontent.com/assets/13158414/14804653/1f0d31cc-0b1a-11e6-8f56-e8cac1f72852.png)
20 20
 
21 21
 Once this is done and the installation finished, reboot and you are ready to use it.  
22
-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.  
22
+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.  
23 23
 
24 24
 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.
25 25
 
26
-## 7.2 Automated install of a custom host via kickstart
26
+### 7.2 Automated install of a custom host via kickstart
27 27
 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.  
28 28
 
29
-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: 
29
+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: 
30 30
 ```
31 31
     ...
32 32
     "type": "ostree_host",
... ...
@@ -37,3 +35,5 @@ If not familiar with the way kickstart works, visit [Kickstart Support in Photon
37 37
 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**.
38 38
 
39 39
 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. 
40
+
41
+[[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 42
\ No newline at end of file
... ...
@@ -1,6 +1,4 @@
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.   
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.   
4 2
 The simplest way to explain is to take a look at the files installed by the Photon RPM-OSTree server during setup.  
5 3
 ```  
6 4
 root [ ~ ]# cd /srv/rpm-ostree/
... ...
@@ -15,7 +13,7 @@ lrwxrwxrwx 1 root root   28 Aug 28 19:06 photon-ostree.repo -> /etc/yum.repos.d/
15 15
 lrwxrwxrwx 1 root root   36 Aug 28 19:06 photon-updates-ostree.repo -> /etc/yum.repos.d/photon-updates.repo
16 16
 drwxr-xr-x 7 root root 4096 Aug 20 22:27 repo
17 17
 ```
18
-## 9.1 JSON configuration file
18
+### 9.1 JSON configuration file
19 19
 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.  
20 20
 ```
21 21
 root [ /srv/rpm-ostree ]# cat photon-base.json 
... ...
@@ -52,15 +50,15 @@ root [ /srv/rpm-ostree ]# cat photon-base.json
52 52
 }
53 53
 ``` 
54 54
 There are some mandatory settings, some optional. I'm only going to explain the most important ones for our use case.  
55
-**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.
55
+**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.
56 56
 
57
-## 9.2 Package addition, removal, upgrade 
57
+### 9.2 Package addition, removal, upgrade 
58 58
 **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. 
59 59
 Let's add to the list three new packages: gawk, sudo and wget using `vim photon-base.json`
60 60
 
61 61
 **!!!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.**
62 62
 
63
-## 9.3 RPMS repository
63
+### 9.3 RPMS repository
64 64
 But where are these packages located? RPM-OStree uses the same standard RPMS repositories, that yum installs from.
65 65
 ``` 
66 66
 root [ /srv/rpm-ostree ]# ls /etc/yum.repos.d/
... ...
@@ -92,7 +90,7 @@ noarch  repodata  x86_64
92 92
 ```
93 93
 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. 
94 94
 
95
-_**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.
95
+_**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.
96 96
 ```
97 97
 root [ /srv/rpm-ostree ]# cat /etc/yum.repos.d/photon-iso.repo 
98 98
 [photon-iso]
... ...
@@ -107,7 +105,7 @@ skip_if_unavailable=True
107 107
 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. 
108 108
 
109 109
 
110
-## 9.4 Composing a tree
110
+### 9.4 Composing a tree
111 111
 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.
112 112
 ```
113 113
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
... ...
@@ -224,13 +222,13 @@ No apparent changes since previous commit; use --force-nocache to override
224 224
 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. 
225 225
 
226 226
 
227
-## 9.5 Automatic version prefix
227
+### 9.5 Automatic version prefix
228 228
 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.  
229 229
 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!  
230 230
 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"`.
231 231
 
232 232
 
233
-## 9.6 Installing package updates
233
+### 9.6 Installing package updates
234 234
 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. 
235 235
 ```
236 236
 "repos": ["photon", "photon-updates"],
... ...
@@ -316,6 +314,9 @@ Added:
316 316
  libssh2-1.8.0-1.ph1.x86_64
317 317
 ``` 
318 318
 
319
-## 9.7 Composing for a different branch
319
+### 9.7 Composing for a different branch
320 320
 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.  
321
-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.
321
+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.
322
+
323
+
324
+[[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]]
322 325
\ No newline at end of file
... ...
@@ -1,6 +1,4 @@
1
-# Appendix
2
-
3
-## Photon 1.0 GA: systemd-networkd and systemd-resolved not starting in the updated image, on reboot
1
+### Photon 1.0 GA: systemd-networkd and systemd-resolved not starting in the updated image, on reboot
4 2
 This issue has been fixed in 1.0 Revision 2 and above.
5 3
 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:  
6 4
 At server:  
... ...
@@ -13,7 +11,7 @@ At every host that booted into the bad image, from console:
13 13
   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.  
14 14
   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.
15 15
  
16
-## OSTree repo is no longer accessible via http after RPM-OSTree server has updated httpd package
16
+### OSTree repo is no longer accessible via http after RPM-OSTree server has updated httpd package
17 17
 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:  
18 18
 
19 19
 * Replace the content of /usr/lib/systemd/system/httpd.service with:
... ...
@@ -36,17 +34,18 @@ WantedBy=multi-user.target
36 36
 * systemctl daemon-reload
37 37
 * systemctl restart httpd
38 38
 
39
-## Error composing when photon-iso repo is selected
39
+### Error composing when photon-iso repo is selected
40 40
 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.  
41 41
   
42
-## Package differences between RPM-OSTree "minimal" and minimal installation profile
42
+### Package differences between RPM-OSTree "minimal" and minimal installation profile
43 43
 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.
44 44
 
45 45
 That's easy to overcome - just add the wanted package names in the photon-base.json and re-compose the tree.
46 46
 
47 47
 
48 48
 
49
-## Manual pages not included for installed packages
49
+### Manual pages not included for installed packages
50 50
 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.
51 51
 
52 52
 
53
+[[Back to main page|Photon-RPM-OSTree:-a-simple-guide]] | [[Previous page|Photon-RPM-OSTree:-Install-or-rebase-to-Photon-OS-2.0]]
... ...
@@ -1,30 +1,28 @@
1
-# Install or rebase to Photon OS 2.0
2
-
3 1
 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.  
4 2
 
5 3
 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.
6 4
 
7
-## 12.1 Installing an RPM-OSTree server
5
+### 12.1 Installing an RPM-OSTree server
8 6
 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.
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).
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]].
10 8
 ```
11 9
 root [ /srv/rpm-ostree ]# ostree --repo=repo init --mode=archive-z2
12 10
 root [ /srv/rpm-ostree ]# rpm-ostree compose tree --repo=repo photon-base.json
13 11
 ```
14 12
 Now if you point a browser to http://<server_IP_address>, you should see the familiar directory structure of an OSTree repo.
15 13
 
16
-## 12.2 Installing an RPM-OSTree host
14
+### 12.2 Installing an RPM-OSTree host
17 15
 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.  
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).  
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]].  
19 17
 
20
-## 12.3 Rebasing a host from Photon 1.0 to 2.0
18
+### 12.3 Rebasing a host from Photon 1.0 to 2.0
21 19
 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".   
22 20
 
23 21
 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.  
24 22
 The OS name is the same (Photon), so the content in /var and /etc will be transferred over.  
25 23
 
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).  
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]].  
28 26
 ostree should confirm that is the updated server IP for the "photon" remote.
29 27
 ```
30 28
 root@ostree-host [ ~ ]# ostree remote show-url photon
... ...
@@ -188,6 +186,7 @@ Deployments:
188 188
 
189 189
 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.
190 190
 
191
-## 12.4 Creating a host raw image
191
+### 12.4 Creating a host raw image
192 192
 It is now possible to run at server a script that is part of RPM-OStree package, to create a host raw mage.
193 193
 
194
+[[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]]
194 195
new file mode 100644
... ...
@@ -0,0 +1,18 @@
0
+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.   
1
+
2
+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.
3
+
4
+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.  
5
+
6
+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. 
7
+
8
+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.  
9
+
10
+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!
11
+
12
+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). 
13
+
14
+Danut Moraru - August 31th, 2015  
15
+Bellevue, WA  
16
+
17
+[[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]]
0 18
\ No newline at end of file
... ...
@@ -1,80 +1,83 @@
1
-# Photon RPM OSTree: a simple guide
2
-
3
-## Contents  
1
+Contents  
4 2
 ***
5 3
 
4
+   [[Preface|Photon-RPM-OSTree:-Preface]]  
6 5
 
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)
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]]    
76 75
 
77
-[Appendix A: Known issues](Photon-RPM-OSTree-Appendix-A-Known-issues.md)  
76
+[[Appendix A: Known issues|Photon-RPM-OSTree:-Appendix-A:-Known-issues]]  
78 77
 
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.  
80 82
 
83
+[[Next page >|Photon-RPM-OSTree:-Preface]]
81 84
\ No newline at end of file
... ...
@@ -1,17 +1,16 @@
1
-# Concepts in Action
2 1
 
3 2
 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.  
4
-## 3.1 Querying the deployed filetrees
3
+### 3.1 Querying the deployed filetrees
5 4
 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.
6 5
 ``` 
7 6
 root@photon-host [ ~ ]# rpm-ostree status
8 7
   TIMESTAMP (UTC)       VERSION       ID           OSNAME  REFSPEC               
9 8
 * 2016-06-07 14:06:17   1.0_minimal   56ef687f13   photon  photon:photon/1.0/x86_64/minimal
10 9
 ```  
11
-## 3.2 Bootable filetree version
10
+### 3.2 Bootable filetree version
12 11
 **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.
13 12
 
14
-## 3.3 Commit ID
13
+### 3.3 Commit ID
15 14
 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.
16 15
 ```
17 16
 root@photon-host [ ~ ]# rpm-ostree status -p
... ...
@@ -25,11 +24,11 @@ root@photon-host [ ~ ]# rpm-ostree status -p
25 25
   refspec    photon:photon/1.0/x86_64/minimal
26 26
 ============================================================
27 27
 ```
28
-## 3.4 OSname
28
+### 3.4 OSname
29 29
 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.  
30 30
 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.
31 31
 
32
-## 3.5 Refspec
32
+### 3.5 Refspec
33 33
 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).  
34 34
 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.  
35 35
 ```
... ...
@@ -38,7 +37,7 @@ root@photon-host [ ~ ]# cat /ostree/repo/refs/remotes/photon/photon/1.0/x86_64/m
38 38
 ```
39 39
 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.
40 40
 
41
-## 3.6 Deployments
41
+### 3.6 Deployments
42 42
 We've used so far `rpm-ostree`. The same information can be obtained running an `ostree` command:
43 43
 ```
44 44
 root@photon-host [ ~ ]# ostree admin status
... ...
@@ -112,4 +111,6 @@ drwxrwxrwt  4 root root 4096 Jun 12 23:04 tmp
112 112
 drwxr-xr-x 11 root root 4096 Jun  9 18:26 usrlocal
113 113
 ```
114 114
 
115
+[[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]] 
116
+
115 117
 
... ...
@@ -1,10 +1,8 @@
1
-# File Oriented Server Operations
2
-
3 1
 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.  
4 2
 
5 3
 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.
6 4
 
7
-## 8.1 Starting a fresh OSTree repo  
5
+### 8.1 Starting a fresh OSTree repo  
8 6
 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.  
9 7
 ```
10 8
 root [ /srv/rpm-ostree ]# rm -rf repo
... ...
@@ -20,18 +18,20 @@ repo_version=1
20 20
 mode=archive-z2
21 21
 ```
22 22
 
23
-## 8.2 Checking out a filetree
23
+### 8.2 Checking out a filetree
24 24
 [content to be added]
25 25
 
26
-## 8.3 Committing changes to a filetree
26
+### 8.3 Committing changes to a filetree
27 27
 [content to be added]
28 28
 
29
-## 8.4 Downloading the changes at the host
29
+### 8.4 Downloading the changes at the host
30 30
 [content to be added]
31 31
 
32
-## 8.5 Creating summary metadata
32
+### 8.5 Creating summary metadata
33 33
 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:
34 34
 ```
35 35
 root [ /srv/rpm-ostree ]# ostree summary -u "This is BigData's OSTree server, it has three branches"
36 36
 ```  
37
-We will find out later how the [hosts query for branches list](Photon-RPM-OSTree-10-Remotes.md#105-list-available-branches). 
37
+We will find out later how the [[hosts query for branches list|Photon-RPM-OSTree:-10-Remotes#105-list-available-branches]]. 
38
+
39
+[[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 40
\ No newline at end of file
39 41
deleted file mode 100644
... ...
@@ -1,23 +0,0 @@
1
-# Photon OS Documentation
2
-
3
-The Photon OS Documentation provides information about how to install, configure, and use VMware Photon OS&trade;.
4
-
5
- ![PhotonOS Logo](photon-logo.png)
6
-
7
-**Product version: 1.0 and 2.0**
8
-
9
-This documentation applies to all 1.0.x and 2.0.x releases.
10
-
11
-## Intended Audiences
12
-
13
-This information is intended for Photon OS developers.
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,9 +1,7 @@
1
-# Running Photon OS on Amazon Elastic Cloud Compute
2
-
3 1
 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.
4 2
  
5 3
 ## About Photon OS?
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/).
4

                
7 5
 
8 6
 ## Prerequisites
9 7
 
... ...
@@ -19,7 +17,7 @@ This article uses an Ubuntu 14.04 workstation to generate the keys and certifica
19 19
 
20 20
 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).
21 21
 
22
-Download the Photon OS AMI now and save it on your workstation. For instructions, see [Downloading Photon OS](Downloading-Photon-OS.md).
22
+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).
23 23
 
24 24
 **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. 
25 25
 
... ...
@@ -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](Downloading-Photon-OS.md).
32
+For instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
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](Downloading-Photon-OS.md).
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).
26 26
 
27 27
 # Setting Up Azure Storage and Uploading the VHD
28 28
 
... ...
@@ -1,5 +1,3 @@
1
-# Running Photon OS on Workstation 
2
-
3 1
 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.
4 2
 
5 3
 - [About Photon OS](#about-photon-os)
... ...
@@ -11,11 +9,11 @@ This guide describes how to get started using Photon OS as a virtual machine wit
11 11
 - [Deploying a Containerized Application in Photon OS](#deploying-a-containerized-application-in-photon-os)
12 12
 - [Installing Photon OS 1.0](#installing-photon-os-10)
13 13
 
14
-**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). 
14
+**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). 
15 15
 
16 16
 # About Photon OS
17 17
 
18
-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/).
18

                
19 19
 
20 20
 # Requirements
21 21
 
... ...
@@ -49,7 +47,7 @@ Once you&#39;ve decided which way to install, you&#39;ll need to download the co
49 49
 
50 50
 [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/)
51 51
 
52
-For instructions, see  [Downloading Photon OS](Downloading-Photon-OS.md).
52
+For instructions, see  [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
53 53
 
54 54
 # Importing the OVA for Photon OS 2.0
55 55
 
... ...
@@ -356,4 +354,4 @@ You can now run any other containerized application from Docker Hub or your own
356 356
 
357 357
 # Installing Photon OS 1.0
358 358
 
359
-Refer to the Photon OS 1.0 installation instructions in [Running Photon OS on Fusion](Running-Project-Photon-on-Fusion.md).
360 359
\ No newline at end of file
360
+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).
361 361
\ 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](Upgrading-to-Photon-OS-2.0.md). 
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). 
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](Downloading-Photon-OS.md).
47
+For instructions, see [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
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,5 +1,3 @@
1
-# Running Photon OS on Fusion
2
-
3 1
 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.
4 2
 
5 3
 - [About Photon OS](#about-photon-os)
... ...
@@ -11,7 +9,7 @@ This guide describes how to get started using Photon OS as a virtual machine wit
11 11
 - [Deploying a Containerized Application in Photon OS](#deploying-a-containerized-application-in-photon-os)
12 12
 - [Installing Photon OS 1.0](#installing-photon-os-10)
13 13
 
14
-**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). 
14
+**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). 
15 15
 
16 16
 # About Photon OS
17 17
 
... ...
@@ -49,7 +47,7 @@ Once you&#39;ve decided which way to install, you&#39;ll need to download the co
49 49
 
50 50
 [https://bintray.com/vmware/photon/](https://bintray.com/vmware/photon/)
51 51
 
52
-For instructions, see  [Downloading Photon OS](Downloading-Photon-OS.md).
52
+For instructions, see  [Downloading Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS).
53 53
 
54 54
 # Importing the OVA for Photon OS 2.0
55 55
 
... ...
@@ -1,26 +1,24 @@
1
-# Running Project Photon on vCloud Air
2
-
3 1
 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
4 2
 
5
-## What is Photon OS?
3
+# What is Photon OS?
6 4
 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.
7 5
 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.
8 6
 
9 7
 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.  
10 8
 
11
-## Introduction
9
+# Introduction
12 10
 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. 
13 11
 
14 12
 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!
15 13
 
16
-## Photon OS on vCloud Air Prerequisites
14
+# Photon OS on vCloud Air Prerequisites
17 15
 The following items are required for preparing and launching Photon OS on Google Compute Engine:
18 16
 
19 17
 * An account on vCloud Air
20 18
 
21 19
 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. 
22 20
 
23
-## Creating a Photon OS Instance
21
+# Creating a Photon OS Instance
24 22
 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. 
25 23
 
26 24
 ![](https://cloud.githubusercontent.com/assets/11306358/9573923/4fdf11f4-4f76-11e5-9706-ed10437dad4d.png)
... ...
@@ -37,7 +35,7 @@ When you click the "Create your first virtual machine" button, you'll be present
37 37
  
38 38
 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.
39 39
  
40
-## Installing a Containerized Application to Help Demonstrate Capability
40
+# Installing a Containerized Application to Help Demonstrate Capability
41 41
 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.
42 42
 
43 43
 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.
44 44
deleted file mode 100644
... ...
@@ -1,109 +0,0 @@
1
-# Summary
2
-
3
-## Photon OS 1.0 and 2.0
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)
109 1
\ No newline at end of file
... ...
@@ -1,3 +1 @@
1
-# Upgrading the Kernel Version Requires Grub Changes for AWS and GCE Images
2
-
3 1
 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`.
4 2
\ No newline at end of file
... ...
@@ -1,6 +1,4 @@
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).
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).
4 2
 
5 3
 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.
6 4
 
7 5
deleted file mode 100644
8 6
Binary files a/docs/VMW_logo.png and /dev/null differ
9 7
deleted file mode 100644
... ...
@@ -1,8 +0,0 @@
1
-# Photon OS Introduction
2
-
3
--   [Introduction](introduction.md)
4
-    -   [Examining the Packages in the SPECS Directory on Github](examining_packages_spec_dir.md)
5
-    -   [Looking at the Differences Between the Minimal and the Full
6
-        Version](differences_between_minimal_and_full_version.md)
7
-    -   [The Root Account and the `sudo` and `su`
8
-        Commands](root_account_and_sudo_commands.md)
9 1
\ No newline at end of file
10 2
new file mode 100644
... ...
@@ -0,0 +1,31 @@
0
+-   [Home](/vmware/photon/wiki)
1
+-   [Download Photon OS](https://github.com/vmware/photon/wiki/Downloading-Photon-OS)
2
+-   [FAQ](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions)
3
+-   Getting Started Guides
4
+    -   [Quick Start](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md#quick-start)
5
+    -   [Running Photon OS on vSphere](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-vSphere)
6
+    -   [Running Photon OS on Fusion](https://github.com/vmware/photon/wiki/Running-Project-Photon-on-Fusion)
7
+    -   [Running Photon OS on Workstation](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Workstation)
8
+    -   [Running Photon OS on AWS EC2](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute)
9
+    -   [Running Photon OS on Microsoft Azure](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Microsoft-Azure)
10
+    -   [Running Photon OS on Google Compute Engine](https://github.com/vmware/photon/wiki/Running-Photon-OS-on-Google-Compute-Engine)
11
+-   Guides
12
+    -   [Installation and Administration Guide](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md)
13
+    -   [Troubleshooting Guide](https://github.com/vmware/photon/blob/master/docs/photon-os-troubleshooting-guide.md)
14
+    -   [Photon RPM OSTree](https://github.com/vmware/photon/wiki/Photon-RPM-OSTree:-a-simple-guide)
15
+-   How-To Articles
16
+    -   [Setting Up a Swarm Cluster with DNS](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS)
17
+    -   [Setting Up a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS)
18
+    -   [Setting Up Marathon for a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-Marathon-for-Mesos-Cluster-on-PhotonOS)
19
+    -   [Setting Up DCOS CLI for Mesos](https://github.com/vmware/photon/wiki/Install-and-Configure-DCOS-CLI-for-Mesos)
20
+    -   [Setting Up Mesos DNS on a Mesos Cluster](https://github.com/vmware/photon/wiki/Install-and-Configure-Mesos-DNS-on-a-Mesos-Cluster)
21
+    -   [Setting Up a Network PXE Boot Server](https://github.com/vmware/photon/blob/master/docs/PXE-boot.md)
22
+    -   [Working with Kickstart](https://github.com/vmware/photon/blob/master/docs/kickstart.md)
23
+    -   [Running Kubernetes](https://github.com/vmware/photon/blob/master/docs/kubernetes.md)
24
+    -   [Mounting Remote File Systems](https://github.com/vmware/photon/blob/master/docs/nfs-utils.md)
25
+    -   [Building Photon OS from the Source Code](https://github.com/vmware/photon/blob/master/docs/build-photon.md) 
26
+    -   [Installing and Using Lightwave on Photon OS](https://github.com/vmware/photon/wiki/Installing-and-Using-Lightwave-on-Photon-OS)
27
+-   Security
28
+    -   [Security Advisories](https://github.com/vmware/photon/wiki/Security-Advisories)
29
+-   Related
30
+    -   [Lightwave](https://github.com/vmware/lightwave)
0 31
deleted file mode 100644
... ...
@@ -1,5 +0,0 @@
1
-# Photon OS Administration Guides
2
-
3
-- [Photon OS Administration Guide](photon-admin-guide.md)
4
-- [How to use Photon Management Daemon](pmd-cli.md)
5
-- [Photon RPM OSTree](Photon-RPM-OSTree-a-simple-guide.md)
6 1
deleted file mode 100644
... ...
@@ -1,22 +0,0 @@
1
-{
2
-
3
-	"title": "VMware Photon OS 3.0 Documentation",
4
-        "gitbook": "3.x.x",
5
-        "plugins": ["insert-logo", "chapter-fold", "edit-link", "noembed"],
6
-        "pluginsConfig": {
7
-            "insert-logo": {
8
-                "url": "VMW_logo.png",
9
-                "style": "background: none"
10
-        },
11
-            "edit-link": {
12
-                "base": "https://github.com/vmware/photon/tree/master/docs",
13
-                "label": "Edit this Page"
14
-            }
15
-        },
16
-	"pdf": {
17
-		"headerTemplate": "_TITLE_",
18
-		"footerTemplate": "_PAGENUM_",
19
-                "paperSize": "letter"
20
-	}
21
-         
22
-}
23 1
\ 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](photon-admin-guide.md#running-a-photon-os-machine-on-gce). 
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). 
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](photon-admin-guide.md#customizing-a-photon-os-machine-on-ec2).
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).
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](Frequently-Asked-Questions.md) is now on the Wiki. 
3
+The [FAQ for Photon OS](https://github.com/vmware/photon/wiki/Frequently-Asked-Questions) 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](photon-admin-guide.md). 
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). 
6 6
 
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).
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).
8 8
 
... ...
@@ -1,5 +1,4 @@
1
-# Photon OS on GCE
2
-
1
+#Photon OS on GCE
3 2
 ## Google Compute Engine (GCE) Image background
4 3
 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. 
5 4
 Google provides tools that VM instances require to work correctly on GCE:
... ...
@@ -25,17 +24,17 @@ Following is the list (extracted from [this link](https://cloud.google.com/compu
25 25
 
26 26
 ## The GCE-Ready Image of Photon OS 
27 27
 
28
-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
+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). 
29 29
 
30 30
 ## Creating Photon image for GCE
31
-### 1. Prepare Photon Disk
32
-#### Install Photon Minimal on Fusion/Workstation and install some required packages.
31
+##### 1. Prepare Photon Disk
32
+###### Install Photon Minimal on Fusion/Workstation and install some required packages.
33 33
       mount /dev/cdrom /media/cdrom
34 34
       tdnf install yum
35 35
       tdnf install python2-libs
36 36
       yum install ntp sudo wget tar which gptfdisk sed findutils grep gzip --nogpgcheck -y
37 37
 
38
-#### 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
+###### 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.
39 39
   
40 40
       # Change partition table to MBR from GPT
41 41
       sgdisk -m 1:2 /dev/sda
... ...
@@ -51,7 +50,7 @@ The latest version of Photon OS does all of this for you. It bundles the Google
51 51
       # Create new grub.cfg based on the settings in /etc/default/grub
52 52
       grub2-mkconfig -o /boot/grub2/grub.cfg
53 53
       
54
-### 2. Install Google Cloud SDK and GCE Packages
54
+##### 2. Install Google Cloud SDK and GCE Packages
55 55
       yum install google-daemon google-startup-scripts
56 56
       cp /usr/lib/systemd/system/google* /lib/systemd/system/
57 57
       cd /lib/systemd/system/multi-user.target.wants/
... ...
@@ -63,9 +62,9 @@ The latest version of Photon OS does all of this for you. It bundles the Google
63 63
       tar -xf google-cloud-sdk.tar.gz
64 64
       cd google-cloud-sdk
65 65
       ./install.sh
66
-### 3. Update /etc/hosts file with GCE values
66
+##### 3. Update /etc/hosts file with GCE values
67 67
       echo "169.254.169.254 metadata.google.internal metadata" >> /etc/hosts
68
-### 4. Remove all servers from ntp.conf and add Google's ntp server.
68
+##### 4. Remove all servers from ntp.conf and add Google's ntp server.
69 69
       sed -i -e "/server/d" /etc/ntp.conf
70 70
       cat /etc/ntp.conf
71 71
       echo "server 169.254.169.254" >> /etc/ntp.conf
... ...
@@ -89,13 +88,13 @@ The latest version of Photon OS does all of this for you. It bundles the Google
89 89
       cd /lib/systemd/system/multi-user.target.wants/
90 90
       ln -s ../ntpd.service ntpd.service
91 91
       
92
-### 5. Set UTC timezone
92
+##### 5. Set UTC timezone
93 93
       ln -sf /usr/share/zoneinfo/UTC /etc/localtime
94 94
 
95
-### 6. Update /etc/resolv.conf
95
+##### 6. Update /etc/resolv.conf
96 96
       echo "nameserver 8.8.8.8" >> /etc/resolv.conf
97 97
 
98
-### 7. Remove ssh host keys and add script to regenerate them at boot time.
98
+##### 7. Remove ssh host keys and add script to regenerate them at boot time.
99 99
       rm /etc/ssh/ssh_host_*
100 100
       # Depending on the installation, you may need to purge the following keys
101 101
       rm /etc/ssh/ssh_host_rsa_key*
... ...
@@ -107,9 +106,9 @@ The latest version of Photon OS does all of this for you. It bundles the Google
107 107
       echo "exit 0" >> /etc/rc.local
108 108
       printf "GOOGLE\n" > /etc/ssh/sshd_not_to_be_run
109 109
       
110
-      # Edit sshd_config and ssh_config as per instructions on [this link](https://cloud.google.com/compute/docs/tutorials/building-images).
110
+      # Edit sshd_config and ssh_config as per instructions on [this link](https://cloud.google.com/compute/docs/tutorials/building-images ).
111 111
       
112
-### 8. Change MTU to 1460 for network interface.
112
+##### 8. Change MTU to 1460 for network interface.
113 113
       # Create a startup service in systemd that will change MTU and exits
114 114
       cat << EOF >> /lib/systemd/system/eth0.service
115 115
       [Unit]
... ...
@@ -128,8 +127,8 @@ The latest version of Photon OS does all of this for you. It bundles the Google
128 128
       cd /lib/systemd/system/multi-user.target.wants/
129 129
       ln -s ../eth0.service eth0.service
130 130
 
131
-### 9. Pack and Upload to GCE.
132
-#### Shutdown the Photon VM and copy its disk to tmp folder.       
131
+##### 9. Pack and Upload to GCE.
132
+###### Shutdown the Photon VM and copy its disk to tmp folder.       
133 133
       # You will need to install Google Cloud SDK on host machine to upload the image and play with GCE.
134 134
       cp Virtual\ Machines.localized/photon.vmwarevm/Virtual\ Disk.vmdk /tmp/disk.vmdk
135 135
       cd /tmp
136 136
deleted file mode 100644
... ...
@@ -1,12 +0,0 @@
1
-# Photon OS Getting Started Guides
2
-
3
--   [Downloading Photon OS](Downloading-Photon-OS.md)
4
--   [Quick Start](photon-admin-guide.md#getting-started-with-photon-os-20)
5
--   [Upgrading to Photon OS 2.0](Upgrading-to-Photon-OS-2.0.md)
6
--   [What is New in Photon OS 2.0](What-is-New-in-Photon-OS-2.0.md)
7
--   [Running Photon OS on vSphere](Running-Photon-OS-on-vSphere.md)
8
--   [Running Photon OS on Fusion](Running-Project-Photon-on-Fusion.md)
9
--   [Running Photon OS on Workstation](Running-Photon-OS-on-Workstation.md)
10
--   [Running Photon OS on AWS EC2](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md)
11
--   [Running Photon OS on Microsoft Azure](Running-Photon-OS-on-Microsoft-Azure.md)
12
--   [Running Photon OS on Google Compute Engine](Running-Photon-OS-on-Google-Compute-Engine.md)
13 1
deleted file mode 100644
... ...
@@ -1,13 +0,0 @@
1
-# Photon OS How-To Guides
2
-
3
-- [Setting Up a Swarm Cluster with DNS](Install-and-Configure-a-Swarm-Cluster-with-DNS-Service-on-PhotonOS.md)
4
-- [Setting Up a Mesos Cluster](Install-and-Configure-a-Production-Ready-Mesos-Cluster-on-Photon-OS.md)
5
-- [Setting Up Marathon for a Mesos Cluster](Install-and-Configure-Marathon-for-Mesos-Cluster-on-PhotonOS.md)
6
-- [Setting Up DCOS CLI for Mesos](Install-and-Configure-DCOS-CLI-for-Mesos.md)
7
-- [Setting Up Mesos DNS on a Mesos Cluster](Install-and-Configure-Mesos-DNS-on-a-Mesos-Cluster.md)
8
-- [Setting Up a Network PXE Boot Server](PXE-boot.md)
9
-- [Working with Kickstart](kickstart.md)
10
-- [Running Kubernetes](kubernetes.md)
11
-- [Mounting Remote File Systems](nfs-utils.md)
12
-- [Building Photon OS from the Source Code](build-photon.md)
13
-- [Installing and Using Lightwave on Photon OS](Installing-and-Using-Lightwave-on-Photon-OS.md)
14 1
deleted file mode 100644
... ...
@@ -1,4 +0,0 @@
1
-package.json
2
-README 
3
-CHANGELOG
4
-LICENSE / LICENCE
5 1
\ No newline at end of file
6 2
deleted file mode 100644
... ...
@@ -1,39 +0,0 @@
1
-#Chapter fold for GitBook
2
-==============
3
-
4
-Extended from the **expandable-chapters** plugin, and make a little modify. Thx for the original author.  
5
-Tiny change to the expandable-chapters plugin from https://github.com/DomainDrivenArchitecture/ to use smaller arrows.  
6
-
7
-### Anything Change?
8
-
9
-Modify the feature of the chapter links, make the links could be clicked to fold or expand their content.  
10
-And add a new feature in order to keep the last chapter which the user browses at last time.  
11
-
12
-### How to use it?
13
-
14
-Add it to your `book.json` configuration:
15
-
16
-```
17
-{
18
-    plugins: ["chapter-fold"]
19
-}
20
-```
21
-
22
-Install your plugins using:
23
-
24
-```
25
-$ gitbook install
26
-```
27
-
28
-### Configuration
29
-
30
-There is _no_ configuration needed at the moment, can be left empty.
31
-
32
-```
33
-{
34
-	"pluginsConfig": {
35
-		"chapter-fold":{}
36
-	}
37
-}
38
-```
39
-
40 1
deleted file mode 100644
... ...
@@ -1,29 +0,0 @@
1
-.book .book-summary .chapter > .articles {
2
-	overflow: hidden;
3
-	max-height: 0px;
4
-}
5
-
6
-.book .book-summary .chapter.expanded > .articles {
7
-	max-height: 9999px;
8
-}
9
-
10
-.book .book-summary .exc-trigger {
11
-	position: absolute;
12
-  	left: 12px;
13
-  	top: 12px;
14
-}
15
-
16
-.book .book-summary ul.summary li a,
17
-.book .book-summary ul.summary li span {
18
-	padding-left: 30px;
19
-}
20
-
21
-.book .book-summary .exc-trigger:before {
22
-  	content: "\f105";
23
-}
24
-
25
-.book .book-summary .expanded > a .exc-trigger:before,
26
-.book .book-summary .expanded > span .exc-trigger:before {
27
-	content: "\f107";
28
-}
29
-
30 1
deleted file mode 100644
... ...
@@ -1,67 +0,0 @@
1
-require(['gitbook', 'jQuery'], function(gitbook, $) {
2
-  var TOGGLE_CLASSNAME = 'expanded',
3
-      CHAPTER = '.chapter',
4
-      ARTICLES = '.articles',
5
-      TRIGGER_TEMPLATE = '<i class="exc-trigger fa"></i>',
6
-      LS_NAMESPACE = 'expChapters';
7
-  var init = function () {
8
-    // adding the trigger element to each ARTICLES parent and binding the event
9
-    var chapterLink = $(ARTICLES).parent(CHAPTER).children('a');
10
-    chapterLink.append($(TRIGGER_TEMPLATE));
11
-    chapterLink.on('click', function (e) {
12
-      e.preventDefault();
13
-      //e.stopPropagation();
14
-      toggle($(e.target).closest(CHAPTER));
15
-    });  
16
-
17
-    expand(lsItem());
18
-    //expand current selected chapter with it's parents
19
-    collapse($(CHAPTER));
20
-    var activeChapter = $(CHAPTER + '.active');
21
-    expand(activeChapter);
22
-    expand(activeChapter.parents(CHAPTER));
23
-  } 
24
-  //on page.change will happend the function.
25
-
26
-  var toggle = function ($chapter) {
27
-    if ($chapter.hasClass('expanded')) {
28
-      collapse($chapter);
29
-    } else {
30
-      expand($chapter);
31
-      //$chapter.addClass('active').siblings().removeClass('active');
32
-    }
33
-  }
34
-  var collapse = function ($chapter) {
35
-    if ($chapter.length && $chapter.hasClass(TOGGLE_CLASSNAME)) {
36
-      $chapter.removeClass(TOGGLE_CLASSNAME);
37
-      lsItem($chapter);
38
-    }
39
-  }
40
-  var expand = function ($chapter) {
41
-    if ($chapter.length && !$chapter.hasClass(TOGGLE_CLASSNAME)) {
42
-      $chapter.addClass(TOGGLE_CLASSNAME);
43
-      lsItem($chapter);
44
-    }
45
-  }
46
-  var lsItem = function () {
47
-    var map = JSON.parse(localStorage.getItem(LS_NAMESPACE)) || {}
48
-    if (arguments.length) {
49
-      var $chapters = arguments[0];
50
-      $chapters.each(function (index, element) {
51
-        var level = $(this).data('level');
52
-        var value = $(this).hasClass(TOGGLE_CLASSNAME);
53
-        map[level] = value;
54
-      })
55
-      localStorage.setItem(LS_NAMESPACE, JSON.stringify(map));
56
-    } else {
57
-      return $(CHAPTER).map(function(index, element){
58
-        if (map[$(this).data('level')]) {
59
-          return this;
60
-        }
61
-      })
62
-    }
63
-  }
64
-  gitbook.events.bind('page.change', function() {
65
-    init()
66
-  }); 
67
-});
68 1
deleted file mode 100644
... ...
@@ -1,12 +0,0 @@
1
-module.exports = {
2
-    // Extend website resources and html
3
-    website: {
4
-        assets: "./book",
5
-        js: [
6
-            "chapter-fold.js"
7
-        ],
8
-        css: [
9
-            "chapter-fold.css"
10
-        ]
11
-    }
12
-};
13 1
\ No newline at end of file
14 2
deleted file mode 100644
... ...
@@ -1,85 +0,0 @@
1
-{
2
-  "_args": [
3
-    [
4
-      {
5
-        "name": "gitbook-plugin-chapter-fold",
6
-        "raw": "gitbook-plugin-chapter-fold@0.0.4",
7
-        "rawSpec": "0.0.4",
8
-        "scope": null,
9
-        "spec": "0.0.4",
10
-        "type": "version"
11
-      },
12
-      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
13
-    ]
14
-  ],
15
-  "_from": "gitbook-plugin-chapter-fold@0.0.4",
16
-  "_id": "gitbook-plugin-chapter-fold@0.0.4",
17
-  "_inCache": true,
18
-  "_installable": true,
19
-  "_location": "/gitbook-plugin-chapter-fold",
20
-  "_nodeVersion": "8.9.4",
21
-  "_npmOperationalInternal": {
22
-    "host": "s3://npm-registry-packages",
23
-    "tmp": "tmp/gitbook-plugin-chapter-fold_0.0.4_1529402331863_0.19505579298587006"
24
-  },
25
-  "_npmUser": {
26
-    "email": "crazypad@qq.com",
27
-    "name": "coco9420"
28
-  },
29
-  "_npmVersion": "4.6.1",
30
-  "_phantomChildren": {},
31
-  "_requested": {
32
-    "name": "gitbook-plugin-chapter-fold",
33
-    "raw": "gitbook-plugin-chapter-fold@0.0.4",
34
-    "rawSpec": "0.0.4",
35
-    "scope": null,
36
-    "spec": "0.0.4",
37
-    "type": "version"
38
-  },
39
-  "_requiredBy": [
40
-    "#USER"
41
-  ],
42
-  "_resolved": "https://registry.npmjs.org/gitbook-plugin-chapter-fold/-/gitbook-plugin-chapter-fold-0.0.4.tgz",
43
-  "_shasum": "dcd5a21f80bcbc98c088419774c397ae6d4463ef",
44
-  "_shrinkwrap": null,
45
-  "_spec": "gitbook-plugin-chapter-fold@0.0.4",
46
-  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
47
-  "author": {
48
-    "name": "Colin"
49
-  },
50
-  "bugs": {
51
-    "url": "https://github.com/ColinCollins/gitbook-plugin-chapter-fold/issues"
52
-  },
53
-  "dependencies": {},
54
-  "description": "This is the fold plugin, extended from the expandable chapter plugin.",
55
-  "devDependencies": {},
56
-  "directories": {},
57
-  "dist": {
58
-    "fileCount": 6,
59
-    "shasum": "dcd5a21f80bcbc98c088419774c397ae6d4463ef",
60
-    "tarball": "https://registry.npmjs.org/gitbook-plugin-chapter-fold/-/gitbook-plugin-chapter-fold-0.0.4.tgz",
61
-    "unpackedSize": 4555
62
-  },
63
-  "engines": {
64
-    "gitbook": ">=1.0.0"
65
-  },
66
-  "gitHead": "523aa84802ccbeabfae13d66c3dda66b4961b72f",
67
-  "homepage": "https://github.com/ColinCollins/gitbook-plugin-chapter-fold",
68
-  "license": "Apache 2",
69
-  "main": "index.js",
70
-  "maintainers": [
71
-    {
72
-      "email": "crazypad@qq.com",
73
-      "name": "coco9420"
74
-    }
75
-  ],
76
-  "name": "gitbook-plugin-chapter-fold",
77
-  "optionalDependencies": {},
78
-  "readme": "ERROR: No README data found!",
79
-  "repository": {
80
-    "type": "git",
81
-    "url": "git+https://github.com/ColinCollins/gitbook-plugin-chapter-fold.git"
82
-  },
83
-  "scripts": {},
84
-  "version": "0.0.4"
85
-}
86 1
deleted file mode 100644
... ...
@@ -1,25 +0,0 @@
1
-# Logs
2
-logs
3
-*.log
4
-
5
-# Runtime data
6
-pids
7
-*.pid
8
-*.seed
9
-
10
-# Directory for instrumented libs generated by jscoverage/JSCover
11
-lib-cov
12
-
13
-# Coverage directory used by tools like istanbul
14
-coverage
15
-
16
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17
-.grunt
18
-
19
-# Compiled binary addons (http://nodejs.org/api/addons.html)
20
-build/Release
21
-
22
-# Dependency directory
23
-# Deployed apps should consider commenting this line out:
24
-# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git
25
-node_modules
26 1
deleted file mode 100644
... ...
@@ -1,201 +0,0 @@
1
-Apache License
2
-                           Version 2.0, January 2004
3
-                        http://www.apache.org/licenses/
4
-
5
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
-   1. Definitions.
8
-
9
-      "License" shall mean the terms and conditions for use, reproduction,
10
-      and distribution as defined by Sections 1 through 9 of this document.
11
-
12
-      "Licensor" shall mean the copyright owner or entity authorized by
13
-      the copyright owner that is granting the License.
14
-
15
-      "Legal Entity" shall mean the union of the acting entity and all
16
-      other entities that control, are controlled by, or are under common
17
-      control with that entity. For the purposes of this definition,
18
-      "control" means (i) the power, direct or indirect, to cause the
19
-      direction or management of such entity, whether by contract or
20
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
-      outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
-      "You" (or "Your") shall mean an individual or Legal Entity
24
-      exercising permissions granted by this License.
25
-
26
-      "Source" form shall mean the preferred form for making modifications,
27
-      including but not limited to software source code, documentation
28
-      source, and configuration files.
29
-
30
-      "Object" form shall mean any form resulting from mechanical
31
-      transformation or translation of a Source form, including but
32
-      not limited to compiled object code, generated documentation,
33
-      and conversions to other media types.
34
-
35
-      "Work" shall mean the work of authorship, whether in Source or
36
-      Object form, made available under the License, as indicated by a
37
-      copyright notice that is included in or attached to the work
38
-      (an example is provided in the Appendix below).
39
-
40
-      "Derivative Works" shall mean any work, whether in Source or Object
41
-      form, that is based on (or derived from) the Work and for which the
42
-      editorial revisions, annotations, elaborations, or other modifications
43
-      represent, as a whole, an original work of authorship. For the purposes
44
-      of this License, Derivative Works shall not include works that remain
45
-      separable from, or merely link (or bind by name) to the interfaces of,
46
-      the Work and Derivative Works thereof.
47
-
48
-      "Contribution" shall mean any work of authorship, including
49
-      the original version of the Work and any modifications or additions
50
-      to that Work or Derivative Works thereof, that is intentionally
51
-      submitted to Licensor for inclusion in the Work by the copyright owner
52
-      or by an individual or Legal Entity authorized to submit on behalf of
53
-      the copyright owner. For the purposes of this definition, "submitted"
54
-      means any form of electronic, verbal, or written communication sent
55
-      to the Licensor or its representatives, including but not limited to
56
-      communication on electronic mailing lists, source code control systems,
57
-      and issue tracking systems that are managed by, or on behalf of, the
58
-      Licensor for the purpose of discussing and improving the Work, but
59
-      excluding communication that is conspicuously marked or otherwise
60
-      designated in writing by the copyright owner as "Not a Contribution."
61
-
62
-      "Contributor" shall mean Licensor and any individual or Legal Entity
63
-      on behalf of whom a Contribution has been received by Licensor and
64
-      subsequently incorporated within the Work.
65
-
66
-   2. Grant of Copyright License. Subject to the terms and conditions of
67
-      this License, each Contributor hereby grants to You a perpetual,
68
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
-      copyright license to reproduce, prepare Derivative Works of,
70
-      publicly display, publicly perform, sublicense, and distribute the
71
-      Work and such Derivative Works in Source or Object form.
72
-
73
-   3. Grant of Patent License. Subject to the terms and conditions of
74
-      this License, each Contributor hereby grants to You a perpetual,
75
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
-      (except as stated in this section) patent license to make, have made,
77
-      use, offer to sell, sell, import, and otherwise transfer the Work,
78
-      where such license applies only to those patent claims licensable
79
-      by such Contributor that are necessarily infringed by their
80
-      Contribution(s) alone or by combination of their Contribution(s)
81
-      with the Work to which such Contribution(s) was submitted. If You
82
-      institute patent litigation against any entity (including a
83
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
84
-      or a Contribution incorporated within the Work constitutes direct
85
-      or contributory patent infringement, then any patent licenses
86
-      granted to You under this License for that Work shall terminate
87
-      as of the date such litigation is filed.
88
-
89
-   4. Redistribution. You may reproduce and distribute copies of the
90
-      Work or Derivative Works thereof in any medium, with or without
91
-      modifications, and in Source or Object form, provided that You
92
-      meet the following conditions:
93
-
94
-      (a) You must give any other recipients of the Work or
95
-          Derivative Works a copy of this License; and
96
-
97
-      (b) You must cause any modified files to carry prominent notices
98
-          stating that You changed the files; and
99
-
100
-      (c) You must retain, in the Source form of any Derivative Works
101
-          that You distribute, all copyright, patent, trademark, and
102
-          attribution notices from the Source form of the Work,
103
-          excluding those notices that do not pertain to any part of
104
-          the Derivative Works; and
105
-
106
-      (d) If the Work includes a "NOTICE" text file as part of its
107
-          distribution, then any Derivative Works that You distribute must
108
-          include a readable copy of the attribution notices contained
109
-          within such NOTICE file, excluding those notices that do not
110
-          pertain to any part of the Derivative Works, in at least one
111
-          of the following places: within a NOTICE text file distributed
112
-          as part of the Derivative Works; within the Source form or
113
-          documentation, if provided along with the Derivative Works; or,
114
-          within a display generated by the Derivative Works, if and
115
-          wherever such third-party notices normally appear. The contents
116
-          of the NOTICE file are for informational purposes only and
117
-          do not modify the License. You may add Your own attribution
118
-          notices within Derivative Works that You distribute, alongside
119
-          or as an addendum to the NOTICE text from the Work, provided
120
-          that such additional attribution notices cannot be construed
121
-          as modifying the License.
122
-
123
-      You may add Your own copyright statement to Your modifications and
124
-      may provide additional or different license terms and conditions
125
-      for use, reproduction, or distribution of Your modifications, or
126
-      for any such Derivative Works as a whole, provided Your use,
127
-      reproduction, and distribution of the Work otherwise complies with
128
-      the conditions stated in this License.
129
-
130
-   5. Submission of Contributions. Unless You explicitly state otherwise,
131
-      any Contribution intentionally submitted for inclusion in the Work
132
-      by You to the Licensor shall be under the terms and conditions of
133
-      this License, without any additional terms or conditions.
134
-      Notwithstanding the above, nothing herein shall supersede or modify
135
-      the terms of any separate license agreement you may have executed
136
-      with Licensor regarding such Contributions.
137
-
138
-   6. Trademarks. This License does not grant permission to use the trade
139
-      names, trademarks, service marks, or product names of the Licensor,
140
-      except as required for reasonable and customary use in describing the
141
-      origin of the Work and reproducing the content of the NOTICE file.
142
-
143
-   7. Disclaimer of Warranty. Unless required by applicable law or
144
-      agreed to in writing, Licensor provides the Work (and each
145
-      Contributor provides its Contributions) on an "AS IS" BASIS,
146
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
-      implied, including, without limitation, any warranties or conditions
148
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
-      PARTICULAR PURPOSE. You are solely responsible for determining the
150
-      appropriateness of using or redistributing the Work and assume any
151
-      risks associated with Your exercise of permissions under this License.
152
-
153
-   8. Limitation of Liability. In no event and under no legal theory,
154
-      whether in tort (including negligence), contract, or otherwise,
155
-      unless required by applicable law (such as deliberate and grossly
156
-      negligent acts) or agreed to in writing, shall any Contributor be
157
-      liable to You for damages, including any direct, indirect, special,
158
-      incidental, or consequential damages of any character arising as a
159
-      result of this License or out of the use or inability to use the
160
-      Work (including but not limited to damages for loss of goodwill,
161
-      work stoppage, computer failure or malfunction, or any and all
162
-      other commercial damages or losses), even if such Contributor
163
-      has been advised of the possibility of such damages.
164
-
165
-   9. Accepting Warranty or Additional Liability. While redistributing
166
-      the Work or Derivative Works thereof, You may choose to offer,
167
-      and charge a fee for, acceptance of support, warranty, indemnity,
168
-      or other liability obligations and/or rights consistent with this
169
-      License. However, in accepting such obligations, You may act only
170
-      on Your own behalf and on Your sole responsibility, not on behalf
171
-      of any other Contributor, and only if You agree to indemnify,
172
-      defend, and hold each Contributor harmless for any liability
173
-      incurred by, or claims asserted against, such Contributor by reason
174
-      of your accepting any such warranty or additional liability.
175
-
176
-   END OF TERMS AND CONDITIONS
177
-
178
-   APPENDIX: How to apply the Apache License to your work.
179
-
180
-      To apply the Apache License to your work, attach the following
181
-      boilerplate notice, with the fields enclosed by brackets "{}"
182
-      replaced with your own identifying information. (Don't include
183
-      the brackets!)  The text should be enclosed in the appropriate
184
-      comment syntax for the file format. We also recommend that a
185
-      file or class name and description of purpose be included on the
186
-      same "printed page" as the copyright notice for easier
187
-      identification within third-party archives.
188
-
189
-   Copyright {yyyy} {name of copyright owner}
190
-
191
-   Licensed under the Apache License, Version 2.0 (the "License");
192
-   you may not use this file except in compliance with the License.
193
-   You may obtain a copy of the License at
194
-
195
-       http://www.apache.org/licenses/LICENSE-2.0
196
-
197
-   Unless required by applicable law or agreed to in writing, software
198
-   distributed under the License is distributed on an "AS IS" BASIS,
199
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
-   See the License for the specific language governing permissions and
201
-   limitations under the License.
202 1
\ No newline at end of file
203 2
deleted file mode 100644
... ...
@@ -1,110 +0,0 @@
1
-GitBook Plugin: Edit Link
2
-======================================
3
-
4
-This GitBook Plugin adds "Edit This Page" link on every page.
5
-
6
-Link target will be that page's source file on Github or Gitlab or any repo.
7
-
8
-## Screenshot
9
-
10
-![gitbook-plugin-edit-link](https://cloud.githubusercontent.com/assets/4115/5695161/f5b79002-99b8-11e4-821a-d2af6c729348.png)
11
-
12
-## Usage
13
-
14
-### Step #1 - Update `book.json` file
15
-
16
-1. In you gitbook's `book.json` file, add `edit-link` to `plugins` list.
17
-2. In `pluginsConfig`, Set `base` value which is base path to your github or gitlab or other code repo. Trailing slash is NOT required.
18
-3. By default link label will be "Edit This Page". You can change it using plugin config `label`.
19
-
20
-#### Sample `book.json` file for gitbook version 2.0.1 and above
21
-
22
-```
23
-{
24
-    "gitbook": "2.0.1",
25
-    "plugins": ["edit-link"],
26
-    "pluginsConfig": {
27
-            "edit-link": {
28
-                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
29
-                "label": "Edit This Page"
30
-            }
31
-    }
32
-}
33
-```
34
-
35
-#### Sample `book.json` file for gitbook version 2.0.1+ and multilingual labels
36
-
37
-```
38
-{
39
-    "gitbook": "2.0.1",
40
-    "plugins": ["edit-link"],
41
-    "pluginsConfig": {
42
-            "edit-link": {
43
-                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
44
-                "label": {
45
-                    "en": "Edit This Page",
46
-                    "de": "Seite bearbeiten"
47
-                }
48
-            }
49
-    }
50
-}
51
-```
52
-
53
-#### Sample `book.json` file for older gitbook versions <= 1.5.0
54
-
55
-```
56
-{
57
-    "gitbook": "1.5.0",
58
-    "plugins": ["edit-link@1.1.0"],
59
-    "pluginsConfig": {
60
-            "edit-link": {
61
-                "base": "https://github.com/USER/REPO/edit/BRANCH/path/to/book",
62
-                "label": "Edit This Page"
63
-            }
64
-    }
65
-}
66
-```
67
-
68
-**Note**: Above snippet can be used as complete `book.json` file, if your book doesn't have one yet.
69
-
70
-**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.
71
-
72
-### Step #2 - gitbook commands
73
-
74
-1. Run `gitbook install`. It will automatically install `edit-link` gitbook plugin for your book. This is needed only once.
75
-2. Build your book (`gitbook build`) or serve (`gitbook serve`) as usual.
76
-
77
-## Troubleshooting
78
-
79
-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/)
80
-2. Check if you are using default gitbook theme. It is NOT recommended to modify gitbook themes directly.
81
-
82
-## Known Issue
83
-
84
-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
85
-
86
-So when using Gitbook 2.0.1, you may see following warning in console at the time of running build:
87
-
88
-> warn: hook 'page' used by plugin 'gitbook-plugin-edit-link' is deprecated, and will be remove in the coming versions
89
-
90
-You can safely ignore above warning for now.
91
-
92
-## How this work?
93
-
94
-This plugin simply looks for HTML comment `<!-- Actions Right -->` in parsed page content and insert "edit link" HTML just before `<!-- Actions Right -->`.
95
-
96
-This means if that HTML comment changes, this plugin will break but I hope to fix it easily whenever that happen.
97
-
98
-## Changelog
99
-
100
-**1.3 - 28 April 2015**
101
-
102
-- 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.
103
-
104
-**1.2 - 03 April 2015**
105
-
106
-- Multiligual gitbook support added by [@aniav](https://github.com/aniav) ([#2](https://github.com/rtCamp/gitbook-plugin-edit-link/pull/2))
107
-
108
-**1.1.3 - 11 Jan 2015**
109
-
110
-- Initial release
111 1
deleted file mode 100644
... ...
@@ -1,30 +0,0 @@
1
-require(["gitbook", "jQuery"], function(gitbook, $) {
2
-    gitbook.events.bind('start', function (e, config) {
3
-        var conf = config['edit-link'];
4
-        var label = conf.label;
5
-        var base = conf.base;
6
-        var lang = gitbook.state.innerLanguage;
7
-        if (lang) {
8
-            // label can be a unique string for multi-languages site
9
-            if (typeof label === 'object') label = label[lang];
10
-
11
-            lang = lang + '/';
12
-        }
13
-
14
-        // Add slash at the end if not present
15
-        if (base.slice(-1) != "/") {
16
-            base = base + "/";
17
-        }
18
-
19
-        gitbook.toolbar.createButton({
20
-            icon: 'fa fa-edit',
21
-            text: label,
22
-            onClick: function() {
23
-                var filepath = gitbook.state.filepath;
24
-
25
-                window.open(base + lang + filepath);
26
-            }
27
-        });
28
-    });
29
-
30
-});
31 1
\ No newline at end of file
32 2
deleted file mode 100644
... ...
@@ -1,8 +0,0 @@
1
-var path = require('path');
2
-
3
-module.exports = {
4
-    book: {
5
-        assets: "./book",
6
-        js: ["plugin.js"]
7
-    }
8
-};
9 1
deleted file mode 100644
... ...
@@ -1,121 +0,0 @@
1
-{
2
-  "_args": [
3
-    [
4
-      {
5
-        "name": "gitbook-plugin-edit-link",
6
-        "raw": "gitbook-plugin-edit-link@2.0.2",
7
-        "rawSpec": "2.0.2",
8
-        "scope": null,
9
-        "spec": "2.0.2",
10
-        "type": "version"
11
-      },
12
-      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
13
-    ]
14
-  ],
15
-  "_from": "gitbook-plugin-edit-link@2.0.2",
16
-  "_id": "gitbook-plugin-edit-link@2.0.2",
17
-  "_inCache": true,
18
-  "_installable": true,
19
-  "_location": "/gitbook-plugin-edit-link",
20
-  "_nodeVersion": "5.1.0",
21
-  "_npmUser": {
22
-    "email": "samypesse@gmail.com",
23
-    "name": "samypesse"
24
-  },
25
-  "_npmVersion": "3.3.12",
26
-  "_phantomChildren": {},
27
-  "_requested": {
28
-    "name": "gitbook-plugin-edit-link",
29
-    "raw": "gitbook-plugin-edit-link@2.0.2",
30
-    "rawSpec": "2.0.2",
31
-    "scope": null,
32
-    "spec": "2.0.2",
33
-    "type": "version"
34
-  },
35
-  "_requiredBy": [
36
-    "#USER"
37
-  ],
38
-  "_resolved": "https://registry.npmjs.org/gitbook-plugin-edit-link/-/gitbook-plugin-edit-link-2.0.2.tgz",
39
-  "_shasum": "d8fcd927eced81e7a662a72d59db609eafd7e72f",
40
-  "_shrinkwrap": null,
41
-  "_spec": "gitbook-plugin-edit-link@2.0.2",
42
-  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
43
-  "author": {
44
-    "email": "admin@rtcamp.com",
45
-    "name": "rtCamp"
46
-  },
47
-  "bugs": {
48
-    "url": "https://github.com/rtCamp/gitbook-plugin-edit-link/issues"
49
-  },
50
-  "contributors": [
51
-    {
52
-      "email": "rahul.bansal@rtcamp.com",
53
-      "name": "Rahul Bansal"
54
-    },
55
-    {
56
-      "email": "samy@gitbook.com",
57
-      "name": "Samy Pessé"
58
-    }
59
-  ],
60
-  "dependencies": {},
61
-  "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.",
62
-  "devDependencies": {},
63
-  "directories": {},
64
-  "dist": {
65
-    "shasum": "d8fcd927eced81e7a662a72d59db609eafd7e72f",
66
-    "tarball": "https://registry.npmjs.org/gitbook-plugin-edit-link/-/gitbook-plugin-edit-link-2.0.2.tgz"
67
-  },
68
-  "engines": {
69
-    "gitbook": ">=2.5.0"
70
-  },
71
-  "gitHead": "51a5d22a76f46dd41a057837c6ef4c0f09ec9cbb",
72
-  "gitbook": {
73
-    "properties": {
74
-      "base": {
75
-        "required": true,
76
-        "title": "Base for the edit redirection",
77
-        "type": "string"
78
-      },
79
-      "label": {
80
-        "default": "Edit This Page",
81
-        "title": "Label for the edit button",
82
-        "type": [
83
-          "string",
84
-          "object"
85
-        ]
86
-      }
87
-    }
88
-  },
89
-  "homepage": "https://github.com/rtCamp/gitbook-plugin-edit-link",
90
-  "keywords": [
91
-    "gitbook",
92
-    "plugin",
93
-    "edit-with",
94
-    "github"
95
-  ],
96
-  "license": "Apache-2.0",
97
-  "main": "index.js",
98
-  "maintainers": [
99
-    {
100
-      "email": "rahul.bansal@rtcamp.com",
101
-      "name": "rahul286"
102
-    },
103
-    {
104
-      "email": "admin@rtcamp.com",
105
-      "name": "rtcamp"
106
-    },
107
-    {
108
-      "email": "samypesse@gmail.com",
109
-      "name": "samypesse"
110
-    }
111
-  ],
112
-  "name": "gitbook-plugin-edit-link",
113
-  "optionalDependencies": {},
114
-  "readme": "ERROR: No README data found!",
115
-  "repository": {
116
-    "type": "git",
117
-    "url": "git+https://github.com/rtCamp/gitbook-plugin-edit-link.git"
118
-  },
119
-  "scripts": {},
120
-  "version": "2.0.2"
121
-}
122 1
deleted file mode 100644
... ...
@@ -1,24 +0,0 @@
1
-This is free and unencumbered software released into the public domain.
2
-
3
-Anyone is free to copy, modify, publish, use, compile, sell, or
4
-distribute this software, either in source code form or as a compiled
5
-binary, for any purpose, commercial or non-commercial, and by any
6
-means.
7
-
8
-In jurisdictions that recognize copyright laws, the author or authors
9
-of this software dedicate any and all copyright interest in the
10
-software to the public domain. We make this dedication for the benefit
11
-of the public at large and to the detriment of our heirs and
12
-successors. We intend this dedication to be an overt act of
13
-relinquishment in perpetuity of all present and future rights to this
14
-software under copyright law.
15
-
16
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
-OTHER DEALINGS IN THE SOFTWARE.
23
-
24
-For more information, please refer to <https://unlicense.org>
25 1
deleted file mode 100644
... ...
@@ -1,30 +0,0 @@
1
-GitBook plugin: Insert logo
2
-===========================
3
-
4
-NPM package [here](https://www.npmjs.com/package/gitbook-plugin-insert-logo)
5
-
6
-```
7
-npm i gitbook-plugin-insert-logo
8
-```
9
-
10
-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`:
11
-
12
-```json
13
-{
14
-    "plugins": ["insert-logo", "another plugin 1", "another plugin 2"]
15
-}
16
-```
17
-
18
-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`:
19
-
20
-```json
21
-{
22
-    "plugins": ["insert-logo", "another plugin 1", "another plugin 2"],
23
-    "pluginsConfig": {
24
-        "insert-logo": {
25
-            "url": "http://www.example.com/my-logo.png"
26
-            "style": "background: none;"
27
-        }
28
-    }
29
-}
30
-```
31 1
deleted file mode 100644
... ...
@@ -1,12 +0,0 @@
1
-module.exports = {
2
-    book: {
3
-        assets: './lib',
4
-        js: [
5
-            'plugin.js'
6
-        ],
7
-        css: [
8
-            'plugin.css'
9
-        ]
10
-    }
11
-
12
-};
13 1
\ No newline at end of file
14 2
deleted file mode 100644
... ...
@@ -1,4 +0,0 @@
1
-.book .book-summary .book-logo {
2
-    text-align: center;
3
-    padding: 20px;
4
-}
5 1
\ No newline at end of file
6 2
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-require(['gitbook', 'jQuery'], function (gitbook, $) {
2
-  var url = ''
3
-  var style = ''
4
-  var insertLogo = function (url, style) {
5
-    $('.book-summary').children().eq(0).before('<div class="book-logo"><img src="' + url + '" style="' + style + '"></div>')
6
-  }
7
-  gitbook.events.bind('start', function (e, config) {
8
-    url = config['insert-logo']['url']
9
-    style = config['insert-logo']['style']
10
-  })
11
-
12
-  gitbook.events.bind("page.change", function() {
13
-    insertLogo(url, style)
14
-  })
15
-})
16 1
deleted file mode 100644
... ...
@@ -1,106 +0,0 @@
1
-{
2
-  "_args": [
3
-    [
4
-      {
5
-        "name": "gitbook-plugin-insert-logo",
6
-        "raw": "gitbook-plugin-insert-logo@0.1.5",
7
-        "rawSpec": "0.1.5",
8
-        "scope": null,
9
-        "spec": "0.1.5",
10
-        "type": "version"
11
-      },
12
-      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
13
-    ]
14
-  ],
15
-  "_from": "gitbook-plugin-insert-logo@0.1.5",
16
-  "_id": "gitbook-plugin-insert-logo@0.1.5",
17
-  "_inCache": true,
18
-  "_installable": true,
19
-  "_location": "/gitbook-plugin-insert-logo",
20
-  "_nodeVersion": "6.11.4",
21
-  "_npmOperationalInternal": {
22
-    "host": "s3://npm-registry-packages",
23
-    "tmp": "tmp/gitbook-plugin-insert-logo_0.1.5_1521716276866_0.7489566873105806"
24
-  },
25
-  "_npmUser": {
26
-    "email": "matusnov@gmail.com",
27
-    "name": "matusnov"
28
-  },
29
-  "_npmVersion": "3.5.2",
30
-  "_phantomChildren": {},
31
-  "_requested": {
32
-    "name": "gitbook-plugin-insert-logo",
33
-    "raw": "gitbook-plugin-insert-logo@0.1.5",
34
-    "rawSpec": "0.1.5",
35
-    "scope": null,
36
-    "spec": "0.1.5",
37
-    "type": "version"
38
-  },
39
-  "_requiredBy": [
40
-    "#USER"
41
-  ],
42
-  "_resolved": "https://registry.npmjs.org/gitbook-plugin-insert-logo/-/gitbook-plugin-insert-logo-0.1.5.tgz",
43
-  "_shasum": "daae8dda41a236d54f13931e570b26729557885a",
44
-  "_shrinkwrap": null,
45
-  "_spec": "gitbook-plugin-insert-logo@0.1.5",
46
-  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
47
-  "author": {
48
-    "email": "matusnov@gmail.com",
49
-    "name": "matusnovak"
50
-  },
51
-  "bugs": {
52
-    "url": "https://github.com/matusnovak/gitbook-plugin-insert-logo/issues"
53
-  },
54
-  "dependencies": {},
55
-  "description": "GitBook Plugin to insert (url or file or base64) into the navigation above search input.",
56
-  "devDependencies": {},
57
-  "directories": {},
58
-  "dist": {
59
-    "fileCount": 6,
60
-    "shasum": "daae8dda41a236d54f13931e570b26729557885a",
61
-    "tarball": "https://registry.npmjs.org/gitbook-plugin-insert-logo/-/gitbook-plugin-insert-logo-0.1.5.tgz",
62
-    "unpackedSize": 3785
63
-  },
64
-  "engines": {
65
-    "gitbook": ">1.x.x"
66
-  },
67
-  "gitHead": "fba26154a69508a0a84898423749f7dbea433485",
68
-  "gitbook": {
69
-    "properties": {
70
-      "style": {
71
-        "default": "background: none;",
72
-        "title": "Custom CSS",
73
-        "type": "string"
74
-      },
75
-      "url": {
76
-        "default": "http://www.example.com/my-logo.png",
77
-        "title": "Logo URL",
78
-        "type": "string"
79
-      }
80
-    }
81
-  },
82
-  "homepage": "https://github.com/matusnovak/gitbook-plugin-insert-logo#readme",
83
-  "keywords": [
84
-    "gitbook",
85
-    "plugin",
86
-    "insert-logo",
87
-    "logo",
88
-    "github"
89
-  ],
90
-  "main": "index.js",
91
-  "maintainers": [
92
-    {
93
-      "email": "matusnov@gmail.com",
94
-      "name": "matusnov"
95
-    }
96
-  ],
97
-  "name": "gitbook-plugin-insert-logo",
98
-  "optionalDependencies": {},
99
-  "readme": "ERROR: No README data found!",
100
-  "repository": {
101
-    "type": "git",
102
-    "url": "git+https://github.com/matusnovak/gitbook-plugin-insert-logo.git"
103
-  },
104
-  "scripts": {},
105
-  "version": "0.1.5"
106
-}
107 1
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-.DS_Store
2
-*.log
3 1
\ No newline at end of file
4 2
deleted file mode 100644
... ...
@@ -1,27 +0,0 @@
1
-# Gitbook plugin Noembed
2
-
3
-Get any video or iframe card supported by [Noembed](https://noembed.com/#supported-sites). (Vimeo, YouTube, Facebook, Twitter, Instagram, etc)
4
-
5
-*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.*
6
-
7
-## Installation
8
-Add "noembed" to your plugins in `book.json`.
9
-
10
-```js
11
-{
12
-  "plugins": ["noembed"]
13
-}
14
-```
15
-
16
-## Usage
17
-- You can use two filters: `noembed` or `video`. *(At the moment they both do exactly the same)*
18
-- Make sure you wrap your URL around single or double quotes.
19
-
20
-```md
21
-{{ 'https://vimeo.com/31942602' | noembed }}
22
-
23
-or
24
-
25
-{{ 'https://vimeo.com/31942602' | video }}
26
-```
27
-
28 1
deleted file mode 100644
... ...
@@ -1,93 +0,0 @@
1
-function renderNoembed(event) {
2
-  var iframes         = document.querySelectorAll('.noembed-wrapper');
3
-  var loaded          = 0;
4
-  var total           = iframes.length;
5
-  var externalScripts = [];
6
-
7
-  function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {
8
-    var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);
9
-
10
-    return {width: (srcWidth * ratio) | 0, height: (srcHeight * ratio) | 0};
11
-  }
12
-
13
-  function ajaxReq(url, callback) {
14
-    var req = new XMLHttpRequest();
15
-    req.onreadystatechange = function() {
16
-      if (req.readyState === XMLHttpRequest.DONE) {
17
-        if (req.status === 200) {
18
-          callback(JSON.parse(req.responseText));
19
-        }
20
-      }
21
-    };
22
-
23
-    req.open('GET', url, true);
24
-    req.send();
25
-    return req;
26
-  }
27
-
28
-  function checkForScripts(html) {
29
-    var tempElement = document.createElement('div');
30
-    tempElement.innerHTML = html;
31
-
32
-    var scripts = tempElement.querySelectorAll('script');
33
-
34
-    if (scripts.length) {
35
-      for (var i = 0; i < scripts.length; i++) {
36
-        if (externalScripts.indexOf(scripts[i].src) < 0) {
37
-          externalScripts.push(scripts[i].src);
38
-          scripts[i].parentElement.removeChild(scripts[i]);
39
-        }
40
-      }
41
-    }
42
-
43
-    return tempElement;
44
-  }
45
-
46
-  function getVideoData(url, wrapper) {
47
-    if (!!url.length) {
48
-      ajaxReq(url, function(res) {
49
-        var safeHtml = '';
50
-
51
-        if (res.html) {
52
-          safeHtml = checkForScripts(res.html);
53
-
54
-          if (res.type === 'video' && res.hasOwnProperty('width') && res.hasOwnProperty('height')) {
55
-            var dims = calculateAspectRatioFit(res.width, res.height, wrapper.clientWidth, 9999);
56
-            wrapper.classList.add('noembed-type-video');
57
-            wrapper.style.width = dims.width + 'px';
58
-            wrapper.style.height = dims.height + 'px';
59
-          }
60
-
61
-        } else {
62
-          safeHtml = document.createElement('a');
63
-          safeHtml.href = res.url;
64
-          safeHtml.innerText = res.url;
65
-        }
66
-
67
-        wrapper.innerHTML = '';
68
-        wrapper.appendChild(safeHtml);
69
-
70
-        loaded++;
71
-
72
-        if (loaded === total) {
73
-          externalScripts.forEach(function(script) {
74
-            var newScript = document.createElement('script');
75
-            newScript.src = script;
76
-            document.body.appendChild(newScript);
77
-          });
78
-        }
79
-      });
80
-    }
81
-  }
82
-
83
-  for (var i = 0; i < iframes.length; i++) {
84
-    var wrapper = iframes[i];
85
-    var url     = wrapper.dataset.url;
86
-
87
-    getVideoData(url, wrapper);
88
-  }
89
-}
90
-
91
-require(['gitbook'], function(gitbook) {
92
-  gitbook.events.on('page.change', renderNoembed);
93
-});
94 1
deleted file mode 100644
... ...
@@ -1,10 +0,0 @@
1
-.noembed-wrapper {
2
-  position: relative;
3
-  margin: 1em 0;
4
-}
5
-
6
-.noembed-type-video iframe {
7
-  width: 100%;
8
-  height: 100%;
9
-  position: absolute;
10
-}
11 1
\ No newline at end of file
12 2
deleted file mode 100644
... ...
@@ -1,22 +0,0 @@
1
-function noembed(url) {
2
-  var endpoint = '//noembed.com/embed?';
3
-
4
-  if (!!url.length) {
5
-    endpoint += 'url=' + encodeURIComponent(url);
6
-    return '<div class="noembed-wrapper" data-url="' + endpoint + '">' + url + '</div>';
7
-  }
8
-
9
-  return url;
10
-}
11
-
12
-module.exports = {
13
-  website: {
14
-    assets: './assets',
15
-    js: ['scripts.js'],
16
-    css: ['style.css']
17
-  },
18
-  filters: {
19
-    noembed: noembed,
20
-    video: noembed,
21
-  }
22
-};
23 1
deleted file mode 100644
... ...
@@ -1,97 +0,0 @@
1
-{
2
-  "_args": [
3
-    [
4
-      {
5
-        "name": "gitbook-plugin-noembed",
6
-        "raw": "gitbook-plugin-noembed@0.1.0",
7
-        "rawSpec": "0.1.0",
8
-        "scope": null,
9
-        "spec": "0.1.0",
10
-        "type": "version"
11
-      },
12
-      "C:\\Users\\vasudevanv\\Documents\\photon\\docs"
13
-    ]
14
-  ],
15
-  "_from": "gitbook-plugin-noembed@0.1.0",
16
-  "_id": "gitbook-plugin-noembed@0.1.0",
17
-  "_inCache": true,
18
-  "_installable": true,
19
-  "_location": "/gitbook-plugin-noembed",
20
-  "_nodeVersion": "7.4.0",
21
-  "_npmOperationalInternal": {
22
-    "host": "packages-18-east.internal.npmjs.com",
23
-    "tmp": "tmp/gitbook-plugin-noembed-0.1.0.tgz_1485114395790_0.36705310526303947"
24
-  },
25
-  "_npmUser": {
26
-    "email": "info@juancgonzalez.com",
27
-    "name": "juancgonza"
28
-  },
29
-  "_npmVersion": "4.1.1",
30
-  "_phantomChildren": {},
31
-  "_requested": {
32
-    "name": "gitbook-plugin-noembed",
33
-    "raw": "gitbook-plugin-noembed@0.1.0",
34
-    "rawSpec": "0.1.0",
35
-    "scope": null,
36
-    "spec": "0.1.0",
37
-    "type": "version"
38
-  },
39
-  "_requiredBy": [
40
-    "#USER"
41
-  ],
42
-  "_resolved": "https://registry.npmjs.org/gitbook-plugin-noembed/-/gitbook-plugin-noembed-0.1.0.tgz",
43
-  "_shasum": "e0953fc194a42702404e9ca2e865b5f3ee0d6b23",
44
-  "_shrinkwrap": null,
45
-  "_spec": "gitbook-plugin-noembed@0.1.0",
46
-  "_where": "C:\\Users\\vasudevanv\\Documents\\photon\\docs",
47
-  "author": {
48
-    "email": "info@juancgonzalez.com",
49
-    "name": "Juan Camilo Gonzalez",
50
-    "url": "http://juancgonzalez.com"
51
-  },
52
-  "bugs": {
53
-    "url": "https://github.com/1cgonza/gitbook-plugin-noembed/issues"
54
-  },
55
-  "dependencies": {},
56
-  "description": "Get any video or iframe card supported by https://noembed.com/#supported-sites. (Vimeo, YouTube, Facebook, Twitter, Instagram, etc)",
57
-  "devDependencies": {},
58
-  "directories": {},
59
-  "dist": {
60
-    "shasum": "e0953fc194a42702404e9ca2e865b5f3ee0d6b23",
61
-    "tarball": "https://registry.npmjs.org/gitbook-plugin-noembed/-/gitbook-plugin-noembed-0.1.0.tgz"
62
-  },
63
-  "engines": {
64
-    "gitbook": ">2.0.0"
65
-  },
66
-  "gitHead": "66c29b5aa6bc6981ed68d3afd3385fc32e5af0fe",
67
-  "homepage": "https://github.com/1cgonza/gitbook-plugin-noembed#readme",
68
-  "keywords": [
69
-    "gitbook",
70
-    "gitbook-plugin",
71
-    "videos",
72
-    "oembed",
73
-    "iframe",
74
-    "noembed",
75
-    "vimeo",
76
-    "youtube",
77
-    "instagram",
78
-    "facebook"
79
-  ],
80
-  "license": "Apache-2.0",
81
-  "main": "index.js",
82
-  "maintainers": [
83
-    {
84
-      "email": "info@juancgonzalez.com",
85
-      "name": "juancgonza"
86
-    }
87
-  ],
88
-  "name": "gitbook-plugin-noembed",
89
-  "optionalDependencies": {},
90
-  "readme": "ERROR: No README data found!",
91
-  "repository": {
92
-    "type": "git",
93
-    "url": "git+https://github.com/1cgonza/gitbook-plugin-noembed.git"
94
-  },
95
-  "scripts": {},
96
-  "version": "0.1.0"
97
-}
... ...
@@ -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](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)
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)
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](Upgrading-to-Photon-OS-2.0.md). 
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). 
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](Running-Project-Photon-on-vSphere.md).
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).
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](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](https://github.com/vmware/photon/blob/master/docs/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](Running-Project-Photon-on-vSphere.md).
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).
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](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](https://github.com/vmware/photon/blob/master/docs/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](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](https://github.com/vmware/photon/blob/master/docs/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)](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)](https://github.com/vmware/photon/blob/master/docs/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](netmgr.python.md).
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).
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](netmgr.c.md).
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).
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)](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)
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)
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](nfs-utils.md).
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).
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](Running-Photon-OS-on-Amazon-Elastic-Cloud-Compute.md).
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).
1515 1515
 
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).
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).
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](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](https://github.com/vmware/photon/blob/master/docs/kubernetes.md).
1580 1580
 
1581 1581
 ## Installing Sendmail
1582 1582
 
... ...
@@ -1958,6 +1958,15 @@ Here's the `tdnf` command to install these packages:
1958 1958
 
1959 1959
 ## References
1960 1960
 
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)
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
1964 1973
deleted file mode 100644
1965 1974
Binary files a/docs/photon-logo.png and /dev/null 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](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](https://github.com/vmware/photon/blob/master/docs/photon-admin-guide.md).
49 49
\ No newline at end of file