Export all Grafana data sources to data_sources folder
mkdir -p data_sources && curl -s "http://localhost:3000/api/datasources" -u admin:admin|jq -c -M '.[]'|split -l 1 - data_sources/
This exports each data source to a separate JSON file in the data_sources folder.
Load data sources back in from folder
This submits every file that exists in the data_sources
folder to Grafana as a new data source definition.
for i in data_sources/*; do \
curl -X "POST" "http://localhost:3000/api/datasources" \
-H "Content-Type: application/json" \
--user admin:admin \
--data-binary @$i
done
export docker_registry_hub=172.30.1.1:5000
docker login -u $(oc whoami) -p $(oc whoami --show-token) $docker_registry_hub
Disable Alt+ buttons for keyboard layout (Logitech):
sudo dpkg-reconfigure keyboard-configuration
Disable Alt+Shift in Window keyboard settings:
Install tweak tool and change layout buttons:
sudo apt-get install gnome-tweak-tool
xmodmap -e 'keycode 65 = space space space space'
Anchor peer это пир, который используется для обнаружения всех узлов, принадлежащих организациям в канале. Anchor peer должен быть доступен для всех пиров в канале.
У каждой организации в канале должен быть anchor peer (или несколько для предотвращения единой точки отказа), что позволяет пирам обнаруживать все существующие пиры в канале. Если в вашей организации нет anchor peer, ваши пиры смогут видеть только пиры своей организации. Если у организации нет anchor peer в канале, а к каналу присоединяется новый пир, организация не получит информацию об этом новом пире.
Например, предположим, что у нас есть три организации - orgA, orgB, orgC - в канале и один anchor peer в организации - peer0.orgC - определенный для организации C. Когда peer1.orgA из организации A связывается с peer0.orgC, он расскажет peer0.orgC о peer0.orgA. И когда позже peer1.orgB свяжется с peer0.orgC, peer0.orgC сообщит peer1.orgB о peer0.orgA. С этого момента организации orgA и orgB начнут напрямую обмениваться информацией без какой-либо помощи со стороны peer0.orgC.
Да в сети может быть один anchor peer, но рекомендуется использовать отдельные anchor peer для каждой организации.
Внешние и внутренние конечные точки
Для того чтобы сплетни работали эффективно, пиры должны иметь возможность получать информацию о конечных точках пирах в своей собственной организации, а также от пиров в других организациях.
Когда пир стартует, он использует peer.gossip.bootstrap в своем core.yaml для обмена информацией о членстве, делясь информацией обо всех доступных пирах в пределах своей собственной организации. Т.е использует peer.gossip.bootstrap для сплетен внутри своей организации.
Также можно использовать CORE_PEER_GOSSIP_ENDPOINT в docker-compose файле:
peer1:
- CORE_PEER_GOSSIP_BOOTSTRAP=peer2:7051
peer2:
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1:7051
Для того, чтобы пиры в одной организации знали о существовании пиров в другой организации нужно использовать CORE_PEER_GOSSIP_EXTERNALENDPOINT:
peer1:
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1:7051
peer2:
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer2:7051