python automation fabric docker - ghdrako/doc_snipets GitHub Wiki
- https://github.com/fabric/fabric
- https://www.pythonforbeginners.com/systems-programming/how-to-use-fabric-in-python
- https://www.fabfile.org/
Fabric library designed to execute shell commands remotely over SSH, yielding useful Python objects in return. It builds on top of Invoke (subprocess command execution and command-line features) and Paramiko (SSH protocol implementation), extending their APIs to complement one another and provide additional functionality.
from fabric import Connection,task
@task
c.run('git pull origin master')
c.run('docker-compose down')
c.run('docker-compose up -d')
c.run('systemctl restart nginx')
hosts = [server1.example.com','server2.example.com']
deploy_to_server(host,'admin','path/to/ssh_key')
from fabric import Connection,task
@task
c.run('git pull origin master', warn=True)
c.run('source venv/bin/activate && pip install -r requirements.txt', warn=True)
c.run(systemctl restart my_web_app', warn=True)
print("Deploy succesfully")
deploy()
import docker
client = docker.from_env()
# Pulling image
image = client.images.pull('python:3.8-slim')
# Running containers
container = client.containers.run(image,detach=True,name='my_python_app')
# Listening container
print(container.name)
container = client.containers.get('my_python_app')
container.stop()
from kubernetes import client,config
config.load_kube_config()
api_instance = client.CoreV1Api()
pod_list = api_instance.list_namespace_pod(namespace='default')
print(pod.metadata_name)
# ceate new namespace
namespace_bpdy = client.V1Namespace(metadata=client.V1ObjectMeta(name='new-namespace'))
api_instance.create_namespace(namespace_body)