淫秽易怒的帕斯分布
playlabs的Python项目详细描述
PlayLabs:淫秽的Ansible发行版
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PlayLabs将简单的Ansible模式与打包的角色结合在一起,创建一个由Docker编排的PaaS,用于开发到生产的原型产品。
对于ha,您需要自己完成ansible插件,或者使用kubernetes……但是playlabs会做任何其他事情,甚至可以配置自己的sentry或kubernetes服务器!
disclamer:也许它甚至对你有用,但到目前为止,这还远远没有GraceTein.By/>快速启动
BR/> BSH用户用您的密钥和安全的SSHD和无密码SUDO::
PrasListinit root @ 1.2.3.4BR/>所有选项都是可选选项。角色:
playlabs安装ssh、docker、防火墙、nginx@somehost
并部署项目,示例:
playlabs@somehost deploy image=betaguv/mrs:master
playlabs@somehost deploy
image=betaguv/mrs:master
plugins=postgres,django,uwsgi
backup_password=foo
prefix=ybs
instance=hack
env.secret_key=itsnotesecret
playlabs@somehost deploy
prefix=testenv
instance=$ci branch
image=$ci_registry_image:$ci commit_sha
如果您有这项工作,则创建清单是继续工作的方法,无论您是否希望版本配置、为CI添加部署用户、配置机密备份密码,添加ssh密钥…:
=pip3安装--user-e git+https://yourlabs.io/oss/playlabs\egg=playlabs
~/.local/bin/playlabs
init
==
初始化意味着从一个裸机系统转到一个有自己用户的系统,
ssh密钥、dotfiles、sudo访问、安全sshd,以及执行ansible所需的所有依赖项,如python3。如果
您有一个ansible清单存储库,将您的朋友列表存储在
yml中,它也会安装您的朋友帐户。
在某些情况下,您可能需要向ansible传递额外的选项,例如如果
您的安装提供了一个密码sudo,请添加`--ask sudo pass``或在cli中输入
密码,因为初始化将删除:
playlabs init@somehost
playlabs init user:pass@somehost
playlabs init user@somehost--ask sudo pass
playlabs init root@somehost
1。角色
==
如果要部署项目,则需要安装由三个角色组成的paas:docker、firewall和nginx。nginx角色设置
两个容器nginx proxy监视docker socket和内省
docker container环境变量(例如virtual_host)来重新配置
本身,它甚至支持uwsgi。另一个容器是nginx-letsencrypt,它与nginx代理容器共享一个证书卷,并监视docker
容器的套接字和letsencrypt_email等内省变量来配置证书。
-nginx letsencrypt container生成证书,
-其他docker container具有上述操作所必需的环境变量
cli本身非常简单:
playlabs安装docker、防火墙、nginx@somehost;项目角色的paas安装sendmail、netdata、mailcatcher,gitlab@staging
playbab安装sendmail、netdata、sentry user@production
l角色和playlabs角色,是指在
playlabs中,他们努力让东西在docker中运行,以利用nginx代理的
架构。
playlabs当然可以配置sendmail,但也有为开发人员提供
基于docker的全功能邮件服务器或邮件收集器实例的角色,
例如,培训或准备环境。
从“宠物”到“牛”。
但是如果你已经是一个易受攻击的黑客,那么比起Docker compose所提供的功能,比如像在你的应用程序中一样管理SDN上的用户和角色,Ansible做一个
**更多的**会更好。
但问题是,您可以在一个命令中生成它,并将其与服务器的其余部分集成,甚至可以依赖ansible在自己的应用程序中提供细粒度rbac。项目:部署
===========
将“项目”角色设置为通用角色,涵盖从开发到生产的项目开发所需的基础设施。生成一个环境,这里有一个测试这个repo的示例映像:
如果ansibe找到它,它将默认使用IP地址,使用
dns选项“dns=yourdns.com”设置dns,或者在“your inventory/group-vars/all/project.yml”的“project-staging-dns”yaml
变量中设置它。这是因为默认前缀是“project”,默认实例是“staging”。让我们学习一种指定变量的新方法,添加到
变量::
instance=production
如果在资源清册的“your project production”组中配置主机,
则无需再指定主机:
3。项目:插件
PostgreSQL或django或uwsgi支持通过项目插件提供,
postgresSQL或django或uwsgi支持通过项目插件提供,
您可以通过以下方式激活:
/>-指定`-p postgres,uwsgi,django``
-配置``youprefix你的实例插件``youprefix你的实例插件=[postgres,uwsgi,django]```
-添加到dockerfile``env plaplaylabs/env playlabs或者django或者ujango或者uwsgi或者uwsgi,uwsgi是的uwsgi,django``
插件的顺序很重要,首先让postgres确保在项目映像之前启动postgres。
自动加载的
-deploy.pre.yml:在部署项目映像之前要执行的任务
-deploy.post.yml:在部署项目映像之后要执行的任务
-backup.pre.sh:在备份之前包含在backup.sh模板中
-backup.post.sh:在备份之前包含在backup.sh模板中
-restore.pre.sh:包含在restore.sh还原前模板
-restore.post.sh:还原前包含在restore.sh模板中
5。库存(CFG的Git版本控制)
==
==
>大多数角色都要求库存非常有趣。启动一个空存储库
,在其中存储角色应使用的数据::
sts:
yourhost.com:
其他主机:
fqdn:yourdomain.tld
ansible_ssh_port:22
ansible_ssh_host:123.12.12.23
子级:
网络数据:
主机:
主机
在上面,您创建了一个包含主机的网络数据组。执行不带显式@target的netdata角色将自动在主机上安装netdata,这多亏了它。
我们可以使用丰富的符号,例如
此符号一次将两个主机添加到两个角色::
子级:
NetData Mailcatcher:
主机:[yourhost.com,otherhost]
现在,让我们将一些
用户添加到``your inventory/group-vars/all/users.yml``::
--
用户:
-名称:jl
第一个用户名:john;由django角色使用,例如
email:aoeu@example.com
键:'ssh-…'
角色:
ssh:sudo
k8s:cluster-admin
sentry:超级用户
请注意,用户的角色是一个二维矩阵:每个键或值可能都对应一个可转换的角色名,另一个是该角色中的用户级别,这就是为什么角色是一个键-值对。
它将安装所有用户。
options
==
----
>您可以喜欢的一些变量::
-e key=value;将变量“key”设置为“value”
-e'{key:“value”};json中相同变量
-i 1.2.4.4,将主机通过IP添加到此播放
--限制1.2.4.4,#将播放执行限制在这些主机上
--使用其他用户;指定特定的用户名
--noroot;不要尝试自动成为根用户
letsencrypt_email=您的@…
角色变量
----
基变量在“playlabs/roles/rolename/vars/main.yml”中定义,并以“rolename”开始
,它们可以在清单的
`group-vars/all/rolename.yml`中重写。
生活在playlabs/roles中,与ansible roles共享'standard directory
而不是用许多服务污染主机。
project variables
---------
*}基值引用inventory中的mrs_production{image,*}instance=production prefix=mrs
----
但它也会试图通过内省docker镜像来找到它,比如:
env playlabs插件postgres,django,uwsgi,sentry
ASE plugin变量以“project_pluginname”开头,特殊的“project_pluginname_env”变量应该是dict,它们将被合并到
将环境变量添加到项目容器中,project_env将是所有插件env的合并
。
plugin env vars最好使用可重写的变量。
plugin structure
----
>默认插件位于playlabs/plugins中,并具有以下文件:
-`backup.pre.sh`从容器中取出文件并将其添加到$backup
`变量
-`backup.post.sh`清除备份完成后取出的文件
`restore.pre.sh`清除要从
`restic backup repository中提取数据的位置
-`restore.post.sh`加载新数据并在快照版本中重新启动项目后清除,
-`deploy.pre.yml`负责项目部署前执行的任务,即spawn
`postgres
-`deploy.post.yml`负责项目部署后执行的任务,即
`create users from inventory
-`vars.yml`插件变量声明
它发生在/home/yourprefix实例中。内容取决于激活的插件。
如果inventory定义了dsn,则使用lftp上载
-`restore.sh`如果inventory取消了dsn,则使用lftp恢复安全备份存储库
`不带参数的列表快照。使用
`snapshot参数`继续还原该快照,包括project
`image version和plugin data
-`prune.sh`删除playlabs为您旋转的不需要的旧备份快照
-`log`日志,只需填写日志文件,它将执行
a copy truncate,但在需要普罗米修斯或其他
才能启用备份之前,您需要设置备份密码,可以使用-e,也可以通过您的pefix实例备份密码设置备份密码。
restic存储库是加密的,如果您设置了lftp dsn或
前缀实例备份dsn,那么它将使用lftp对它们进行镜像。如果
丢弃本地restic存储库并运行restore.sh,那么它将使用lftp获取
存储库。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PlayLabs将简单的Ansible模式与打包的角色结合在一起,创建一个由Docker编排的PaaS,用于开发到生产的原型产品。
对于ha,您需要自己完成ansible插件,或者使用kubernetes……但是playlabs会做任何其他事情,甚至可以配置自己的sentry或kubernetes服务器!
disclamer:也许它甚至对你有用,但到目前为止,这还远远没有GraceTein.By/>快速启动
BR/> BSH用户用您的密钥和安全的SSHD和无密码SUDO::
PrasListinit root @ 1.2.3.4BR/>所有选项都是可选选项。角色:
playlabs安装ssh、docker、防火墙、nginx@somehost
并部署项目,示例:
playlabs@somehost deploy image=betaguv/mrs:master
playlabs@somehost deploy
image=betaguv/mrs:master
plugins=postgres,django,uwsgi
backup_password=foo
prefix=ybs
instance=hack
env.secret_key=itsnotesecret
playlabs@somehost deploy
prefix=testenv
instance=$ci branch
image=$ci_registry_image:$ci commit_sha
如果您有这项工作,则创建清单是继续工作的方法,无论您是否希望版本配置、为CI添加部署用户、配置机密备份密码,添加ssh密钥…:
~/.local/bin/playlabs
init
==
初始化意味着从一个裸机系统转到一个有自己用户的系统,
ssh密钥、dotfiles、sudo访问、安全sshd,以及执行ansible所需的所有依赖项,如python3。如果
您有一个ansible清单存储库,将您的朋友列表存储在
yml中,它也会安装您的朋友帐户。
在某些情况下,您可能需要向ansible传递额外的选项,例如如果
您的安装提供了一个密码sudo,请添加`--ask sudo pass``或在cli中输入
密码,因为初始化将删除:
playlabs init@somehost
playlabs init user:pass@somehost
playlabs init user@somehost--ask sudo pass
playlabs init root@somehost
1。角色
==
如果要部署项目,则需要安装由三个角色组成的paas:docker、firewall和nginx。nginx角色设置
两个容器nginx proxy监视docker socket和内省
docker container环境变量(例如virtual_host)来重新配置
本身,它甚至支持uwsgi。另一个容器是nginx-letsencrypt,它与nginx代理容器共享一个证书卷,并监视docker
容器的套接字和letsencrypt_email等内省变量来配置证书。
-nginx letsencrypt container生成证书,
-其他docker container具有上述操作所必需的环境变量
cli本身非常简单:
playlabs安装docker、防火墙、nginx@somehost;项目角色的paas安装sendmail、netdata、mailcatcher,gitlab@staging
playbab安装sendmail、netdata、sentry user@production
l角色和playlabs角色,是指在
playlabs中,他们努力让东西在docker中运行,以利用nginx代理的
架构。
playlabs当然可以配置sendmail,但也有为开发人员提供
基于docker的全功能邮件服务器或邮件收集器实例的角色,
例如,培训或准备环境。
从“宠物”到“牛”。
但是如果你已经是一个易受攻击的黑客,那么比起Docker compose所提供的功能,比如像在你的应用程序中一样管理SDN上的用户和角色,Ansible做一个
**更多的**会更好。
但问题是,您可以在一个命令中生成它,并将其与服务器的其余部分集成,甚至可以依赖ansible在自己的应用程序中提供细粒度rbac。项目:部署
===========
将“项目”角色设置为通用角色,涵盖从开发到生产的项目开发所需的基础设施。生成一个环境,这里有一个测试这个repo的示例映像:
如果ansibe找到它,它将默认使用IP地址,使用
dns选项“dns=yourdns.com”设置dns,或者在“your inventory/group-vars/all/project.yml”的“project-staging-dns”yaml
变量中设置它。这是因为默认前缀是“project”,默认实例是“staging”。让我们学习一种指定变量的新方法,添加到
变量::
instance=production
如果在资源清册的“your project production”组中配置主机,
则无需再指定主机:
3。项目:插件
PostgreSQL或django或uwsgi支持通过项目插件提供,
postgresSQL或django或uwsgi支持通过项目插件提供,
您可以通过以下方式激活:
/>-指定`-p postgres,uwsgi,django``
-配置``youprefix你的实例插件``youprefix你的实例插件=[postgres,uwsgi,django]```
-添加到dockerfile``env plaplaylabs/env playlabs或者django或者ujango或者uwsgi或者uwsgi,uwsgi是的uwsgi,django``
插件的顺序很重要,首先让postgres确保在项目映像之前启动postgres。
自动加载的
-deploy.pre.yml:在部署项目映像之前要执行的任务
-deploy.post.yml:在部署项目映像之后要执行的任务
-backup.pre.sh:在备份之前包含在backup.sh模板中
-backup.post.sh:在备份之前包含在backup.sh模板中
-restore.pre.sh:包含在restore.sh还原前模板
-restore.post.sh:还原前包含在restore.sh模板中
5。库存(CFG的Git版本控制)
==
==
>大多数角色都要求库存非常有趣。启动一个空存储库
,在其中存储角色应使用的数据::
sts:
yourhost.com:
其他主机:
fqdn:yourdomain.tld
ansible_ssh_port:22
ansible_ssh_host:123.12.12.23
子级:
网络数据:
主机:
主机
在上面,您创建了一个包含主机的网络数据组。执行不带显式@target的netdata角色将自动在主机上安装netdata,这多亏了它。
我们可以使用丰富的符号,例如
此符号一次将两个主机添加到两个角色::
子级:
NetData Mailcatcher:
主机:[yourhost.com,otherhost]
现在,让我们将一些
用户添加到``your inventory/group-vars/all/users.yml``::
--
用户:
-名称:jl
第一个用户名:john;由django角色使用,例如
email:aoeu@example.com
键:'ssh-…'
角色:
ssh:sudo
k8s:cluster-admin
sentry:超级用户
请注意,用户的角色是一个二维矩阵:每个键或值可能都对应一个可转换的角色名,另一个是该角色中的用户级别,这就是为什么角色是一个键-值对。
它将安装所有用户。
options
==
>您可以喜欢的一些变量::
-e key=value;将变量“key”设置为“value”
-e'{key:“value”};json中相同变量
-i 1.2.4.4,将主机通过IP添加到此播放
--限制1.2.4.4,#将播放执行限制在这些主机上
--使用其他用户;指定特定的用户名
--noroot;不要尝试自动成为根用户
letsencrypt_email=您的@…
角色变量
----
基变量在“playlabs/roles/rolename/vars/main.yml”中定义,并以“rolename”开始
,它们可以在清单的
`group-vars/all/rolename.yml`中重写。
生活在playlabs/roles中,与ansible roles共享'standard directory
而不是用许多服务污染主机。
project variables
---------
*}基值引用inventory中的mrs_production{image,*}instance=production prefix=mrs
但它也会试图通过内省docker镜像来找到它,比如:
env playlabs插件postgres,django,uwsgi,sentry
ASE plugin变量以“project_pluginname”开头,特殊的“project_pluginname_env”变量应该是dict,它们将被合并到
将环境变量添加到项目容器中,project_env将是所有插件env的合并
。
plugin env vars最好使用可重写的变量。
plugin structure
----
>默认插件位于playlabs/plugins中,并具有以下文件:
-`backup.pre.sh`从容器中取出文件并将其添加到$backup
`变量
-`backup.post.sh`清除备份完成后取出的文件
`restore.pre.sh`清除要从
`restic backup repository中提取数据的位置
-`restore.post.sh`加载新数据并在快照版本中重新启动项目后清除,
-`deploy.pre.yml`负责项目部署前执行的任务,即spawn
`postgres
-`deploy.post.yml`负责项目部署后执行的任务,即
`create users from inventory
-`vars.yml`插件变量声明
它发生在/home/yourprefix实例中。内容取决于激活的插件。
如果inventory定义了dsn,则使用lftp上载
-`restore.sh`如果inventory取消了dsn,则使用lftp恢复安全备份存储库
`不带参数的列表快照。使用
`snapshot参数`继续还原该快照,包括project
`image version和plugin data
-`prune.sh`删除playlabs为您旋转的不需要的旧备份快照
-`log`日志,只需填写日志文件,它将执行
a copy truncate,但在需要普罗米修斯或其他
才能启用备份之前,您需要设置备份密码,可以使用-e,也可以通过您的pefix实例备份密码设置备份密码。
restic存储库是加密的,如果您设置了lftp dsn或
前缀实例备份dsn,那么它将使用lftp对它们进行镜像。如果
丢弃本地restic存储库并运行restore.sh,那么它将使用lftp获取
存储库。