
Security News
CISA’s 2025 SBOM Guidance Adds Hashes, Licenses, Tool Metadata, and Context
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Note: This software is just transferred from https://github.com/codenize-tools (maintained by @winebarrel which was archived. Cookpad and @sorah asked @winebarrel for inheriting this project and took its ownership as a new maintainer.
Roadworker is a tool to manage Route53.
It defines the state of Route53 using DSL, and updates Route53 according to DSL.
Notice
Roadworker cannot update TTL of two or more same weighted A records (with different SetIdentifier) after creation.
Add this line to your application's Gemfile:
gem 'roadworker'
And then execute:
$ bundle
Or install it yourself as:
$ gem install roadworker
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'
roadwork -e -o Routefile
vi Routefile
roadwork -a --dry-run
roadwork -a
Usage: roadwork [options]
-p, --profile PROFILE_NAME
--credentials-path PATH
-k, --access-key ACCESS_KEY
-s, --secret-key SECRET_KEY
-a, --apply
-f, --file FILE
--dry-run
--force
--health-check-gc
-e, --export
-o, --output FILE
--split
--with-soa-ns
-t, --test
--nameservers SERVERS
--port PORT
--target-zone REGEXP
--exclude-zone REGEXP
--no-color
--debug
require 'other/routefile'
hosted_zone "winebarrel.jp." do
rrset "winebarrel.jp.", "A" do
ttl 300
resource_records(
"127.0.0.1",
"127.0.0.2"
)
end
rrset "winebarrel.jp.", "MX" do
ttl 300
resource_records(
"10 mx.winebarrel.jp",
"10 mx2.winebarrel.jp"
)
end
end
hosted_zone "info.winebarrel.jp." do
rrset "xxx.info.winebarrel.jp.", "A" do
dns_name "elb-dns-name.elb.amazonaws.com"
end
rrset "yyy.info.winebarrel.jp.", "A" do
dns_name "elb-dns-name2.elb.amazonaws.com", :evaluate_target_health => true
end
rrset "zzz.info.winebarrel.jp", "A" do
set_identifier "Primary"
failover "PRIMARY"
health_check "http://example.com:80/path", :search_string => "ANY_RESPONSE_STRING", :request_interval => 30, :failure_threshold => 3
# If you want to specify the IP address:
#health_check "http://192.0.43.10:80/path", :host => "example.com",...
ttl 456
resource_records(
"127.0.0.1",
"127.0.0.2"
)
end
rrset "zzz.info.winebarrel.jp", "A" do
set_identifier "Secondary"
failover "SECONDARY"
health_check "tcp://192.0.43.10:3306", :request_interval => 30, :failure_threshold => 3
ttl 456
resource_records(
"127.0.0.3",
"127.0.0.4"
)
end
end
# Private HostedZone
hosted_zone "winebarrel.local." do
vpc "us-east-1", "vpc-xxxxxxxx"
vpc "us-east-2", "vpc-xxxxxxxx"
rrset "winebarrel.local.", "A" do
ttl 300
resource_records(
"10.0.0.1",
"10.0.0.2"
)
end
end
rrset "zzz.info.winebarrel.jp", "A" do
set_identifier "Secondary"
failover "SECONDARY"
health_check :calculated => ["07c03a45-5b69-4044-9ec3-016cd8e5f74b", "bba4d1ea-27c2-4d0c-a249-c857a3e46d88"], :health_threshold => 1, :inverted => false
ttl 456
resource_records(
"127.0.0.3",
"127.0.0.4"
)
end
rrset "zzz.info.winebarrel.jp", "A" do
set_identifier "Secondary"
failover "SECONDARY"
health_check :cloudwatch_metric => {:region=>"ap-northeast-1", :name=>"MyCheck"}, :inverted => false, :insufficient_data_health_status => "LastKnownStatus"
ttl 456
resource_records(
"127.0.0.3",
"127.0.0.4"
)
end
require 'aws-sdk'
hosted_zone "us-east-1.my.local." do
vpc "us-east-1", "vpc-xxxxxxxx"
resp = Aws::EC2::Client.new(region: "us-east-1").describe_instances(filters:[{ name: 'vpc-id', values: ["vpc-xxxxxxxx"] }])
instances = resp.reservations.each_with_object({}) do |reservation, reservations|
reservations.merge!(reservation.instances.each_with_object({}) do |instance, instances|
tag_name = instance.tags.find {|tag| tag['key'] == 'Name' }
instances[instance.private_ip_address] = tag_name['value'] if tag_name and tag_name['value'] != ''
end)
end
instances.each {|private_ip_address, tag_name|
rrset "#{tag_name}.us-east-1.my.local.", "A" do
ttl 300
resource_records private_ip_address
end
}
end
template "default_rrset" do
rrset context.name + "." + context.hosted_zone_name, "A" do
ttl context.ttl
resource_records(
"127.0.0.1"
)
end
end
hosted_zone "winebarrel.jp." do
context.ttl = 100
include_template "default_rrset", :name => "www"
include_template "default_rrset", :name => "www2"
end
Use this if your zone contains rrsets managed by other tools, and you want to ignore them in Roadworker.
hosted_zone "winebarrel.jp." do
ignore "ignore.winebarrel.jp"
ignore /^regexp-ignore/
# *.ignore2.winebarrel.jp and ignore2.winebarrel.jp
ignore_under "ignore2.winebarrel.jp"
end
Routefile compares the results of a query to the DNS and DSL in the test mode.
shell> roadwork -t
..F..
info.winebarrel.jp. A:
expected=127.0.0.1(300),127.0.0.3(300)
actual=127.0.0.1(300),127.0.0.2(300)
5 examples, 1 failure
(Please note test of A(Alias) is not possible to perfection...)
FAQs
Unknown package
We found that roadworker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.