Mist is an open source platform for managing heterogeneous computinginfrastructure, aka a Multi-Cloud Management Platform.
The managed computing resources may be running on any combination of publicclouds, private clouds, hypervisors, bare metal servers, container hosts.
Mist is developed by Mist.io Inc. The code for the Community Edition isprovided under the Apache License. The Enterprise Edition and the HostedService include plugins for Governance, Role Based Access Control & CostInsights. They are available for purchase at https://mist.io. Paid supportplans are available for any edition.
They often end up building silos of distinct tools, processes & teams for eachsupported platform, introducing operational complexities which can affect bothsecurity and efficiency.
As the heterogeneity increases, it's becoming increasingly difficult to
Mist provides a unified way to operate, monitor & govern these resources. Themission statement of the Mist platform is to help commoditize computing byalleviating vendor lock-in.
Any service that provides on-demand access to computing resources
Any computing resource is a machine. There are many types of machines and some machines may contain other machines.
Any physical or virtual data storage device. E.g. Physical HDD/SSD, Cloud disks, EBS volumes, etc. Volumes may be attached on machines. May be provisioned along with machines or independently.
Private network spaces that machines can join. e.g. AWS VPC's
An executable (e.g. bash script) or an Ansible playbook that can run on machines over SSH. Scripts may be added inline or by a reference to a tarball or a Git repository.
A blueprint that describes the full lifecycle of an application that may require multiple computing resources, network, storage and additional configurations. E.g. The provided Kubernetes template enables the deployment of a Kubernetes cluster on any cloud and provides workflows to easily scale the cluster up or down. Currently supporting Cloudify blueprints. Terraform support coming soon.
The deployment of a template is a Stack. A Stack may include resources (e.g. machines, networks, volumes) and provides a set of workflow actions that can be performed. A Stack created by the Kubernetes template refers to a Kubernetes cluster. It includes references to the master and worker nodes and provides scale up & down workflows that can be applied to the cluster.
A point to point VPN enabling Mist to manage infrastructure that's not on publicly addressable network space.
Mist is a cloud native application split into microservices which are packaged as Docker containers. It can be deployed on a single host with Docker Compose, or on a Kubernetes cluster using Helm.
The most notable components are the following:
The user interacts with the RESTful Mist API through client apps like the MistUI in the browser, or command line tools (e.g. cURL, Mist CLI). The Mist UI,apart from invoking the RESTful API, also establishes a WebSocket connection,which is used to receive real time updates and to proxy shell connections tomachines. The Mist API server interacts with the respective API's of thetarget clouds, either directly, or by adding tasks that get executedasynchronously by Celery workers. The messaging is following the AMQP protocoland gets coordinated by RabbitMQ. The main data store is MongoDB. Logs arebeing stored in Elasticsearch. Time series data go to either Graphite,InfluxDB or TSFDB, depending on the installation. Schedules and polling tasksare triggered by Celery Beat. Whenever a shell connection is required (e.g.SSH or Docker Shell), Hubshell establishes the connection and makes itavailable through the WebSocket API.
We recommended setting up Mist in a machine with 4 CPU cores, 8GB RAM and 10GB disk (accessible to /var/lib/docker/).
The easiest way to get started with Mist is to install the latest releaseusing docker-compose
. So, in order to run it, one needs to install a recentversion of docker anddocker-compose.
To install the latest stable release, head over toreleases and follow theinstructions there.
After a few minutes (depending on your connection) all the mist containers willbe downloaded and started in the background.
Run docker-compose ps
. All containers should be in the UP state, exceptshortlived container elasticsearch-manage.
Linode users can quickly set up Mist through Linode's One-Click App Marketplace. You can find Mist here and a video about how it works here.
Add the mist chart repository and fetch available charts
helm repo add mist https://dl.mist.io/charts
helm repo update
To install Mist you need to configure the hostname
helm install mist-ce mist/mist-ce --set http.host=foo.bar.com
If you have configured a TLS certificate for this hostname as a k8s secret you can configure it using the http.tlsSecret option
helm install mist-ce mist/mist-ce --set http.host=foo.bar.com --set http.tlsSecret=secretName
If you want to issue a new certificate, also configure the cluster issuer that will be used
helm install mist-ce mist/mist-ce --set http.host=foo.bar.com --http.tlsClusterIssuer=letsencrypt-prod --set http.tlsSecret=secretName
In order to easily customize all available options:
helm show values mist/mist-ce > values.yaml
helm install mist-ce mist/mist-ce -f values.yaml
Make sure you're inside the directory containing the docker-compose.yml
file.
Switch to the directory containing the docker-compose.yml
file and run
docker-compose up -d
This will start all the mist docker containers in the background.
To create a user for the first time, first run
docker-compose exec api sh
This should drop you in a shell into one of the mist containers. In there,run
./bin/adduser --admin admin@example.com
Replace the email address with yours. Try running ./bin/adduser -h
for moreoptions. The --docker-cloud
flag will add the docker daemon hosting themist installation as a docker cloud in the created account.
Mist binds on port 80 of the host. Visit http://localhost and login with theemail and password specified above.
Welcome to Mist! Enjoy!
After the initial docker-compose up -d
, you'll see that a configuration fileis created in ./settings/settings.py
. Edit this file to modify configuration.Any changes to the ./settings/settings.py
require a restart to take effect:
docker-compose restart
If running on anything other than localhost
, you'll need to set theCORE_URI
setting in ./settings/settings.py
. Example:
CORE_URI = "http://198.51.100.12"
In some cases, such as user registration, forgotten passwords, user invitationsetc, mist needs to send emails. By default, mist is configured to use amock mailer. To see logs sent by mist, run
docker-compose logs -f mailmock
If you wish to use a real SMTP server, edit ./settings/settings.py
and modifyMAILER_SETTINGS
.
Don't forget to restart docker-compose for changes to take effect.
This section applies if you've installed mist by using the docker-compose.yml
file of a mist release.
Assuming a certificate cert.pem
and private key file key.pem
in the samedirectory as the docker-compose.yml
file:
Create a docker-compose.override.yml
file with the following contents:
version: '2.0'
services:
nginx:
volumes:
- ./nginx-listen.conf:/etc/nginx/nginx-listen.conf:ro
- ./cert.pem:/etc/nginx/cert.pem:ro
- ./key.pem:/etc/nginx/key.pem:ro
ports:
- 443:443
Create a nginx-listen.conf
in the directory of docker-compose.yml
, with thefollowing contents:
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/key.pem;
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
Update CORE_URI
in mist's settings (see URL section above).
Run docker-compose up -d
.
Mist is managed using docker-compose
. Look that up for details. Someuseful commands follow. Keep in mind that you need to run these from inside thedirectory containing the docker-compose.yml
file:
# See status of all applications
docker-compose ps
# Almost all containers should be in the UP state. An exception to this
# is shortlived containers. Currently the only such container is
# elasticsearch-manage. This should run for a few seconds and exit 0 if
# everything went fine.
# Restart nginx container
docker-compose restart nginx
# See the logs of the api and celery containers, starting with the last
# 50 lines.
docker-compose logs --tail=50 -f api celery
# Stop mist
docker-compose stop
# Start mist
docker-compose start
# or even better
docker-compose up -d
# Stop and remove all containers
docker-compose down
# Completely remove all containers and data volumes.
docker-compose down -v
docker-compose down
.docker-compose up -d
to bring up the new version.docker-compose ps
. Also checkif your Mist portal works as expected.Mist can automatically backup itself to an S3 bucket. To set this up, first create a bucket for the backups on your S3 provider (AWS, MinIO, etc).
Then go to settings/setting.py of your Mist installation and edit the following part accordingly:
BACKUP_INTERVAL = 24 # hours between each backup
BACKUP = {
'host': '', # eg s3.amazonaws.com
'key': '',
'secret': '',
'bucket': '',
'gpg': {
'recipient': '',
'public': '',
'private': '',
}
}
Providing a GPG key is optional but strongly recommended. If you provide it, your backups will be encrypted before getting uploaded to your bucket.Mist also offers a set of manual commands for backing up, listing backups and restoring backups:
docker-compose exec api ./bin/backup
docker-compose exec api ./bin/list-backups
docker-compose exec api ./bin/restore {{myBackupName}}
Finally, please keep in mind that backups include MongoDB and InfluxDB data. Mist logs are stored in Elasticsearch. If you would like to backup these as well, please check out https://www.elastic.co/guide/en/elasticsearch/reference/current/backup-cluster.html.
If you want to install the latest bleeding edge build of mist,run the following:
mkdir mist-ce && cd mist-ce && echo 'MIST_TAG=staging' > .env
wget https://raw.githubusercontent.com/mistio/mist-ce/staging/docker-compose.yml
docker-compose up -d
If you're planning to modify Mist's source code, an alternative installationmethod is recommended.
Clone this git repo and all its submodules with something like:
git clone --recursive https://github.com/mistio/mist-ce.git
cd mist-ce
docker-compose up -d
This may take some time.
This setup will mount the checked out code into the containers. By cloning thedirectory, now there's also a docker-compose.override.yml
file in the currentdirectory in addition to docker-compose.yml
and is used to modify theconfiguration for development mode.
If you're not interested in frontend development, you can comment out the ui &landing sections within the docker-compose.override.yml
file and re-rundocker-compose up -d
. Otherwise, you'll also need to install the ui &landing page dependencies before you can access the Mist UI.
Install all front-end dependencies with the following commands
docker-compose exec landing npm install
docker-compose exec ui npm install
And then build the landing & ui bundles
docker-compose exec landing npm run build
docker-compose exec ui npm run build
When doing front-end development, it's usually more convenient to serve thesource code instead of the bundles. To do that, edit settings/settings.py andset JS_BUILD = False
. Restart the api container for the changes to takeeffect
./restart.sh api
The above instructions for running and managing Mist apply.
目录 1、什么是 Mist Mist是以太坊官方的在线钱包管理工具。通过 Mist 我们可以很方便的连接上我们的私有网络,从而更好的开发、调试、测试我们的智能合约。既可以连接生产网络、测试网络,更加可以通过设置参数的方式,连接我们自己的私有网络。 Mist 在通过 geth.ipc 文件连接后,就和 Geth 所建立的网络完全契合在一起了,在 Mist 上部署的合约,实际上也就是部署在了
以太坊已经发布了windows下的图形客户端mist和命令行客户端geth,但是中国区发现一个问题,新建一个以太坊账号,目前需要同步170万个区块,速度非常的慢,往往好几天都没有同步完。主要原因就是国内的节点过少,根据 Ethernodes统计,国内以太坊节点数量发文时是143个,而且国内特殊的网络原因也会影响到国内用户同步区块数据。 为了国内用户更加流畅地同步区块,EthFans 发起星火节点
MIST 是基于 FPGA 的 aMlga 和 ST。
问题内容: 我想要以下内容。 我只需要一个可以从Maven存储库下载jar及其依赖项的实用程序,而对我的项目的构建方式没有任何限制。 我想要这样的东西: 它也应该能够下载依赖项。 更新: 我不知道应该构造pom.xml。 我唯一需要完成的任务是下载jar,我希望有一个工具可以完成此任务,而不会让我烦恼过多的信息。 有那样的东西吗? 问题答案: 如果要将maven依赖项下载到lib目录中,请使用带有
问题内容: 我需要配置我的Jenkins服务器,并且需要向Jenkins配置添加Java路径。 但是我是lunix命令的新手,有什么建议吗? 我不知道在哪里安装它! 查看经过验证的答案! 问题答案: 这是解决方案 感谢tecadmin
问题内容: 如何从类路径中将.p12证书导入到Java密钥库中?首先,我使用了InstallCert https://code.google.com/p/java- use- examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java 进行了一些更改,以便获得服务器证书将被导入到Java安装目录中的密钥库中。这工作正常,但现在我
问题内容: 我有CentOS 5,但是我不知道在Linux上安装Java SDK的步骤。 在哪里下载RPM文件,接下来该怎么做才能完全安装该文件? 然后,我需要安装Tomcat。 还是有所有现成的包装? 问题答案: 以下命令将返回与Java直接相关的所有软件包的列表。它们的格式为。 如果没有可用的软件包,则可能需要下载新的存储库以进行搜索。我建议看看Dag Wieers的回购协议。下载后,请再次尝
问题内容: 对于Maven Central(或任何其他给定的Nexus存储库)上的工件,我想列出所有直接依赖项。 最初,我考虑过只阅读pom.xml并从依赖项部分收集所有条目。但是我注意到这些条目可能没有版本(由依赖管理提供),或者这些条目可能来自父poms。 我的第二个想法是建立某种人造Maven项目并使用收集相关性。这可能变得复杂。 什么是最直接(也是可靠)的方法? 问题答案: 在Maven插