An open API service indexing awesome lists of open source software.

https://github.com/charles-hsiao/quorum-ansible-playbooks


https://github.com/charles-hsiao/quorum-ansible-playbooks

Last synced: 8 months ago
JSON representation

Awesome Lists containing this project

README

          

# quorum-ansible-playbooks

## Usage

### Example: Run IBFT with Terrera Quorum nodes playbook
```
~$ ansible-playbook -i quorum-consensus/inventories/aws_ec2.yml quorum-consensus/ibft-tessera-5.yml
```

### Clear aws\_ec2 cache if add/remove EC2 quorum nodes
```
~$ rm -r /tmp/aws\_ec2*
```

## Usage - Quorum consensus tasks

### Consensus

#### Init node config (Must run before run consensus)
```
- include_tasks: tasks/consensus-node-config-init.yml
```

#### Consensus common variables

Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
NodeNum | Volume of Quorum nodes | 1~7 | - | True
PrivacyImpl | Privacy implementation | tessera
tessera-remote
constellation | - | True

#### Consensus - Clique
```
- include_tasks: tasks/consensus-clique-init.yml
vars:
NodesNum: ${NodeNum}
- include_tasks: tasks/consensus-clique-start.yml
vars:
PrivacyImpl: ${PrivacyImpl}
```

#### Consensus - IBFT
```
- include_tasks: tasks/consensus-ibft-init.yml
vars:
NodesNum: ${NodeNum}
- include_tasks: tasks/consensus-ibft-start.yml
vars:
PrivacyImpl: ${PrivacyImpl}
```

#### Consensus - Raft
```
- include_tasks: tasks/consensus-ibft-init.yml
vars:
NodesNum: ${NodeNum}
- include_tasks: tasks/consensus-ibft-start.yml
vars:
PrivacyImpl: ${PrivacyImpl}
```

#### Send 20 public events
```
- include_tasks: tasks/txn-send-public-events.yml
```

#### Send 20 private events
```
- include_tasks: tasks/txn-send-private-events.yml
```

#### Start mining
```
- include_tasks: tasks/consensus-mining-start.yml
```

#### Stop mining
```
- include_tasks: tasks/consensus-mining-stop.yml
```

#### Stop all consensus
```
- include_tasks: tasks/consensus-stop-all.yml
```

### Moitoring - epirus

#### epirus common variables
Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
server_ip | IP of quorum/geth nodes to monitor | - | - | True
server_port | Port of geth json rpc | - | 22000 | False

#### Start epirus
```
- include_tasks: tasks/eprius-start.yml
vars:
server_ip: ${server_ip}
server_port: ${server_port}
```

#### Stop epirus
```
- include_tasks: tasks/eprius-stop.yml
```

### Network Connectivity - iptables

#### iptables common variables
Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
block_ip | IP to block or clear block rule | - | - | True

#### iptables - Block source IP
```
- include_tasks: tasks/iptables-block-source.yml
vars:
block_ip: ${block_ip}
```

#### iptables - Clear block source IP
```
- include_tasks: tasks/iptables-clear-block-source.yml
vars:
block_ip: ${block_ip}
```

#### iptables - Clear all rules
```
- include_tasks: tasks/iptables-clear-all.yml
```

### Network Connectivity - netem

#### netem common variables
Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
action | action for netem command | add
delete
change | add | False
network_interface | Network interface to set-up | - | eth0 | False
delay_time | Delay time, input with time unit, ex: 100ms | - | - | True
margin_time | Delay time with margin, Delay=${delay_time} ± ${margin_time}, input with time unit, ex: 100ms | - | - | True
probability | (1)Delay time with margin/(2)Packet corrupt/(3)Packet loss/(4)Packet misorder base on the given probability, input probability with %, ex: 25% | - | - | True
distribution_type | Delay time with margin distribution | uniform
normal
pareto
paretonormal | - | True
correlation_probability | The correlation probability (If correlation_probability=25%, Probn=0.25*Probn-1 + 0.75*Random) | - | - | True
no_delay_index_mod_base | No delay for packet index % ${no_delay_index_mod_base}=0, others delay with ${delay_time} and misorder with certain probability | - | - | True
network_rate_limit | Network rate limit, input in speed unit, ex: 256kbit | - | - | True

#### netem - Delay with specific time
```
- include_tasks: tasks/netem-delay.yml
vars:
action: ${action}
network_interface: ${network_interface}
delay_time: ${delay_time}
```

#### netem - Delay with margin
```
- include_tasks: tasks/netem-delay-margin.yml
vars:
action: ${action}
network_interface: ${network_interface}
delay_time: ${delay_time}
margin_time: ${margin_time}
```

#### netem - Delay with margin probability
```
- include_tasks: tasks/netem-delay-margin-probability.yml
vars:
action: ${action}
network_interface: ${network_interface}
delay_time: ${delay_time}
margin_time: ${margin_time}
probability: ${probability}
```

#### netem - Delay with margin distribution
```
- include_tasks: tasks/netem-delay-margin-distribution.yml
vars:
action: ${action}
network_interface: ${network_interface}
delay_time: ${delay_time}
margin_time: ${margin_time}
distribution_type: ${distribution_type}
```

#### netem - Packet corrupt
```
- include_tasks: tasks/netem-packet-corrupt.yml
vars:
action: ${action}
network_interface: ${network_interface}
probability: ${probability}
```

#### netem - Packet loss
```
- include_tasks: tasks/netem-packet-loss.yml
vars:
action: ${action}
network_interface: ${network_interface}
probability: ${probability}
```

#### netem - Packet loss with burst
```
- include_tasks: tasks/netem-packet-loss-burst.yml
vars:
action: ${action}
network_interface: ${network_interface}
probability: ${probability}
correlation_probability: ${correlation_probability}
```

#### netem - Packet misorder with specific gap
```
- include_tasks: tasks/netem-packet-misorder-gap.yml
vars:
action: ${action}
network_interface: ${network_interface}
packet_nodelay_index_mod_base: ${no_delay_index_mod_base}
delay_time: ${delay_time}
probability: ${probability}
correlation_probability: ${correlation_probability}
```

#### netem - Packet misorder with probability
```
- include_tasks: tasks/netem-packet-misorder-probability.yml
vars:
action: ${action}
network_interface: ${network_interface}
probability: ${probability}
correlation_probability: ${correlation_probability}
```

#### netem - Packet duplicate
```
- include_tasks: tasks/netem-packet-duplicate.yml
vars:
action: ${action}
network_interface: ${network_interface}
probability: ${probability}
```

#### netem - Network rate limit control
```
- include_tasks: tasks/netem-network-rate-control.yml
vars:
action: ${action}
network_interface: ${network_interface}
delay_time: ${delay_time}
network_rate_limit: ${network_rate_limit}
```

#### netem - Clear all
```
- include_tasks: tasks/netem-clear-all.yml
vars:
network_interface: ${network_interface}
```

### Network Connectivity - wondershaper

#### wondershaper common variables
Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
network_interface | Network interface to set-up | - | eth0 | False
network_download_limit | Network download limit in kbps | - | 4096 | False
network_upload_limit | Network upload limit in kbps | - | 4096 | False

#### wondershaper - Network rate limit control
```
- include_tasks: tasks/wondershaper-rate-control.yml
vars:
network_interface: ${network_interface}
network_download_limit: ${network_download_limit}
network_upload_limit: ${network_upload_limit}
```

#### wondershaper - Clear all
```
- include_tasks: tasks/wondershaper-clear-all.yml
vars:
network_interface: ${network_interface}
```

### Benchmarking - sysbench

#### Common variables
Variables | Description | Optional values | Default values | Required
--------- | ----------- | --------------- | -------------- | --------
max_prime | Max prime to calculate while CPU load test | - | - | True
time_sec | Max time in seconds for CPU load test | - | 0 | False
threads | Threads to do load test | - | 1 | False
block_size | Memory/File block size | - | 1K/16K | False
total_size | Memory/File total size | - | 100G/2G | False
operation | Memory test mechanism | read
write | write | False
access_mode | Memory access with sequence(seq) or random(rnd) | seq
rnd | seq | False
scope | Scope to execute memory load test | global
local | global | False
file_num | File volume to generate | - | 128 | False
test_mode | File I/O test mode | - | seqwr
seqrewr
seqrd
rndrd
rndwr
rndrw | False
rw_ratio | File I/O ratio(Read/Write) | - | 1.5 | False

#### CPU
```
- include_tasks: tasks/sysbench-cpu.yml
vars:
max_prime: ${max_prime}
time_sec: ${time_sec}
threads: ${threads}
```

#### Memory
```
- include_tasks: tasks/sysbench-memory.yml
vars:
block_size: ${block_size}
total_size: ${total_size}
operation: ${operation}
access_mode: ${access_mod}
scope: ${scope}
threads: ${threads}
```

#### File I/O
```
- include_tasks: tasks/sysbench-fileio.yml
vars:
file_num: ${file_num}
block_size: ${block_size}
total_size: ${total_size}
test_mode: ${test_mode}
rw_ratio: ${rw_ratio}
threads: ${threads}
```