diff --git a/ansible/roles/bifrost/tasks/deploy-servers.yml b/ansible/roles/bifrost/tasks/deploy-servers.yml
new file mode 100644
index 0000000000..6a6a990eb5
--- /dev/null
+++ b/ansible/roles/bifrost/tasks/deploy-servers.yml
@@ -0,0 +1,21 @@
+---
+- name: Enrolling physical servers with ironic
+  command: >
+     docker exec bifrost_deploy
+     bash -c 'source /bifrost/env-vars
+     && source /opt/stack/ansible/hacking/env-setup &&
+     export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml &&
+     ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py
+     /bifrost/playbooks/enroll-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"
+     -e @/etc/bifrost/bifrost.yml'
+
+- name: deploy physical servers with ironic
+  command: >
+     docker exec bifrost_deploy
+     bash -c 'source /bifrost/env-vars
+     && source /opt/stack/ansible/hacking/env-setup &&
+     export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml &&
+     ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py
+     /bifrost/playbooks/deploy-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python"
+     -e @/etc/bifrost/bifrost.yml'
+
diff --git a/doc/bifrost.rst b/doc/bifrost.rst
index ce6ac4b461..105d79193e 100644
--- a/doc/bifrost.rst
+++ b/doc/bifrost.rst
@@ -18,7 +18,7 @@ fix hosts file
 --------------
 Docker bind mounts ``/etc/hosts`` into the container from a volume.
 This prevents atomic renames which will prevent ansible from fixing
-the ``/etc/host`` file automatically.
+the ``/etc/hosts`` file automatically.
 
 to enable bifrost to be bootstrapped correctly
 add the deployment hosts hostname to 127.0.0.1 line
@@ -110,7 +110,6 @@ creating a bifrost.yml file in the kolla custom config director or in a
 bifrost sub directory.
 e.g. /etc/kolla/config/bifrost/bifrost.yml
 
-    skip_package_install: true
     mysql_service_name: mysql
     ansible_python_interpreter: /var/lib/kolla/venv/bin/python
     network_interface: < add you network interface here >
@@ -134,6 +133,17 @@ dib_os_element: ubuntu
 Deploy Bifrost
 =========================
 
+ansible
+-------
+
+Development
+___________
+tools/kolla-ansible deploy-bifrost
+
+Production
+__________
+kolla-ansible deploy-bifrost
+
 manual
 ------
 
@@ -167,21 +177,10 @@ cd /bifrost
 cd playbooks/
 
 
-bootstap and start services
+bootstrap and start services
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ansible-playbook -vvvv -i /bifrost/playbooks/inventory/localhost /bifrost/playbooks/install.yaml -e @/etc/bifrost/bifrost.yml
 
-ansible
--------
-
-Development
-___________
-tools/kolla-ansible bifrost-deploy -e bifrost_network_interface=<pxe network interface>
-
-Production
-__________
-kolla-ansible deploy-kolla  -e bifrost_network_interface=<pxe network interface>
-
 Check ironic is running
 =======================
 
@@ -199,34 +198,33 @@ e.g.
 +------+------+---------------+-------------+--------------------+-------------+
 
 
-Enroll Physical Nodes
-=====================
+Enroll and Deploy Physical Nodes
+================================
 
 ansible
 -------
-TODO
+
+Development
+___________
+tools/kolla-ansible deploy-servers
+
+Production
+__________
+kolla-ansible deploy-servers
+
 
 manual
 ------
 docker exec -it bifrost_deploy bash
 cd /bifrost
 . env-vars
-export BIFROST_INVENTORY_SOURCE=/tmp/servers.yml
+export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml
 ansible-playbook -vvvv -i inventory/bifrost_inventory.py enroll-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python" -e network_interface=<provisioning interface>
 
-Deploy Nodes
-============
-
-ansible
--------
-TODO
-
-manual
-------
 docker exec -it bifrost_deploy bash
 cd /bifrost
 . env-vars
-export BIFROST_INVENTORY_SOURCE=/tmp/servers.yml
+export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml
 ansible-playbook -vvvv -i inventory/bifrost_inventory.py deploy-dynamic.yaml -e "ansible_python_interpreter=/var/lib/kolla/venv/bin/python" -e network_interface=<prvisioning interface> -e @/etc/bifrost/dib.yml
 
 At this point ironic should clean down your nodes and install the default os image.
diff --git a/releasenotes/notes/bifrost-f080de99005ad38e.yaml b/releasenotes/notes/bifrost-f080de99005ad38e.yaml
index 889650492d..1b47d1304c 100644
--- a/releasenotes/notes/bifrost-f080de99005ad38e.yaml
+++ b/releasenotes/notes/bifrost-f080de99005ad38e.yaml
@@ -10,3 +10,8 @@ features:
     kolla-ansible. The deploy-bifrost command
     will deploy and bootstrap a standalone
     instance of ironic in a single container.
+  - A new deploy-server command was added to
+    kolla-ansible. The deploy-server command
+    uses a locally deployed instance of bifrost
+    to enrole servers with ironic and provision
+    their os.
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index ea92757767..bb8e9bd253 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -42,9 +42,11 @@ Commands:
     prechecks           Do pre-deployment checks for hosts
     mariadb_recovery    Recover a completely stopped mariadb cluster
     bootstrap-servers   bootstrap servers with kolla deploy dependencies
-    deploy              Deploy and start all kolla containers
     destroy             Destroy Kolla containers, volumes and host configuration
                         ('-e destroy_include_images=yes' to also destroy Kolla images)
+    deploy              Deploy and start all kolla containers
+    deploy-bifrost      Deploy and start bifrost container
+    deploy-servers      Enroll and deploy servers with bifrost
     post-deploy         Do post deploy on deploy node
     pull                Pull all images for containers (only pulls, no running container changes)
     reconfigure         Reconfigure OpenStack service
@@ -146,19 +148,24 @@ case "$1" in
         PLAYBOOK="${BASEDIR}/ansible/destroy.yml"
         ;;
 (bootstrap-servers)
-        ACTION="Deploying Playbooks"
+        ACTION="Bootstraping servers"
         PLAYBOOK="${BASEDIR}/ansible/kolla-host.yml"
         EXTRA_OPTS="$EXTRA_OPTS -e action=bootstrap-servers"
         ;;
-(bifrost-deploy)
-        ACTION="Deploying Bifrost"
-        PLAYBOOK="${BASEDIR}/ansible/bifrost.yml"
-        EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
-        ;;
 (deploy)
         ACTION="Deploying Playbooks"
         EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
         ;;
+(deploy-bifrost)
+        ACTION="Deploying Bifrost"
+        PLAYBOOK="${BASEDIR}/ansible/bifrost.yml"
+        EXTRA_OPTS="$EXTRA_OPTS -e action=deploy"
+        ;;
+(deploy-servers)
+        ACTION="Deploying servers with bifrost"
+        PLAYBOOK="${BASEDIR}/ansible/bifrost.yml"
+        EXTRA_OPTS="$EXTRA_OPTS -e action=deploy-servers"
+        ;;
 (post-deploy)
         ACTION="Post-Deploying Playbooks"
         PLAYBOOK="${BASEDIR}/ansible/post-deploy.yml"