Compilation results for aqs1024.eqiad.wmnet: System changes detected
You can retrieve this result from host.json.Catalog differences
Summary
| Total Resources: | 2774 |
|---|---|
| Resources added: | 253 |
| Resources removed: | 5 |
| Resources modified: | 272 |
| Change percentage: | 19.11% |
Resources only in the new catalog
- Sysctl::Parameters[cassandra]
- Ferm::Service[cassandra-analytics-cql]
- Class[Cassandra::Sysctl]
- File[/etc/ferm/conf.d/10_cassandra-intra-node]
- Package[libjemalloc2]
- Exec[update_java_alternatives_11]
- File[/etc/cassandra-a/user_aqsloader.cql]
- File[/etc/cassandra-b/user_media_analytics.cql]
- File[/etc/cassandra-a/user_image_suggestions.cql]
- Package[cassandra-tools]
- File[/var/lib/scap]
- Class[Scap::Ferm]
- File[/etc/cassandra-a/prometheus_jmx_exporter.yaml]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.pem]
- File[/etc/cassandra-b/jvm11-clients.options]
- File[/etc/cassandra-b/hotspot_compiler]
- Prometheus::Blackbox::Check::Tcp[cassandra-a-ssl]
- Motd::Script[aqs]
- File[/etc/cassandra-a/user_edit_analytics.cql]
- Ssh::Userkey[deploy-service]
- File[/etc/cassandra-a/cassandra.yaml]
- Cassandra::Instance[b]
- File[/etc/cassandra-a/jvm17-server.options]
- Exec[create chained cert /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.chain.pem]
- Exec[chown /srv/deployment/cassandra for deploy-service]
- Exec[install-/srv/cassandra/cassandra-a/system]
- File[/etc/cassandra-a/cqlshrc]
- File[/usr/local/bin/cqlsh-b]
- Monitoring::Service[cassandra-a-ssl]
- Java::Package[openjdk-jdk-11]
- Exec[java__cacert_Wikimedia_Internal_Root_CA]
- Exec[sslcert generate cassandra_keystore_aqs1024-a.p12]
- Apt::Repository[component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia]
- File[/usr/local/bin/nodetool-a]
- Service[cassandra]
- File[/etc/cassandra-b/prometheus_jmx_exporter.yaml]
- Package[cassandra/logstash-logback-encoder]
- Exec[renew certificate - cassandra__aqs1024-b_eqiad_wmnet]
- File[/etc/ferm/conf.d/10_cassandra-cql]
- File[/etc/rsyslog.d/50-udp-localhost-compat.conf]
- File[/etc/cassandra-b/logback-tools.xml]
- Exec[install-/srv/cassandra/cassandra-a/hints]
- Apt::Package_from_component[cassandra]
- Exec[install-/srv/storage-0/cassandra-b/data]
- File[/lib/systemd/system/cassandra-a.service]
- Cfssl::Csr[/etc/cfssl/csr/cassandra__aqs1024-a_eqiad_wmnet.csr]
- Exec[install-/srv/cassandra/cassandra-b/saved_caches]
- Package[rsync]
- Interface::Alias[cassandra-a]
- Motd::Message[aqs]
- File[/etc/cfssl/csr/cassandra__aqs1024-a_eqiad_wmnet.csr]
- Package[jvm-tools]
- File[/etc/cassandra-b/jvm-server.options]
- Exec[install-/srv/storage-6/cassandra-a/data]
- Exec[install-/srv/storage-7/cassandra-b/data]
- File[/usr/local/bin/cassandra_validate_grants]
- File[/etc/cassandra-a/user_page_analytics.cql]
- Systemd::Unit[cassandra-a]
- File[/etc/cassandra-a/cassandra-env.sh]
- File[/etc/cassandra-a/logback-tools.xml]
- Class[Profile::Java]
- File[/etc/cassandra-a/user_geo_analytics.cql]
- Ssh::Userkey[scap]
- File[/etc/cassandra-a/credentials]
- Ferm::Service[cassandra-cql]
- File[/etc/cassandra-instances.d/aqs1024-a.yaml]
- File[/etc/cassandra-b/user_edit_analytics.cql]
- Prometheus::Blackbox::Check::Tcp[cassandra-b-ssl]
- Interface::Alias[cassandra-b]
- File[/etc/ferm/conf.d/10_cassandra-analytics-cql]
- Exec[create chained cert /etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.chain.pem]
- Exec[install-/srv/cassandra/cassandra-a/saved_caches]
- Java::Cacert[wmf:puppetca.pem]
- File[/etc/cassandra-b/user_geo_analytics.cql]
- Interface::Ip[cassandra-a ipv4]
- Exec[install-/srv/storage-5/cassandra-a/data]
- Monitoring::Service[cassandra-b-ssl]
- Systemd::Service[cassandra-a]
- File[/etc/cassandra-b/user_data_gateway.cql]
- Exec[Generate cert cassandra__aqs1024-a_eqiad_wmnet]
- Alternatives::Java[11]
- Ferm::Service[cassandra-jmx-rmi]
- Cassandra::Instance::Monitoring[b]
- Prometheus::Blackbox::Check::Tcp[cassandra-b-cql]
- File[/etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list]
- File[/etc/cassandra-a/jvm-server.options]
- File[/etc/cassandra-b/cassandra-env.sh]
- File[/etc/rsyslog.d/50-udp-json-logback-compat.conf]
- Node[__node_regexp__aqs1010-214-920-4.eqiad.]
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.csr]
- File[/usr/local/bin/nodetool-instance]
- File[/etc/cassandra-b/cassandra-rackdc.properties]
- File[/lib/systemd/system/cassandra-b.service]
- File[/etc/cassandra-a/logback.xml]
- File[/etc/cassandra-a/jvm11-clients.options]
- File[/usr/local/bin/nodetool-b]
- File[/etc/cassandra-b/jvm-clients.options]
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet-key.pem]
- Package[cassandra]
- Exec[bootstrap-scap-target]
- Exec[install-/srv/storage-3/cassandra-b/data]
- Exec[install-/srv/cassandra/cassandra-b/commitlog]
- File[/usr/share/cassandra/lib/jackson-annotations-2.4.0.jar]
- Prometheus::Jmx_exporter_instance[aqs1024-a]
- File[/etc/cassandra-b/jvm11-server.options]
- File[/etc/cassandra-b/cqlshrc]
- File[/etc/ssh/userkeys/scap]
- Exec[ip addr add 10.64.156.18/32 dev ens8f0np0]
- File[/etc/cassandra-b/user_aqsloader.cql]
- File[/etc/cassandra-a/user_revise_tone_task_generator.cql]
- Prometheus::Jmx_exporter_instance[aqs1024-b]
- Exec[install-/srv/cassandra/cassandra-b/hints]
- File[/var/lib/deploy-service]
- File[/etc/cassandra-instances.d]
- Cfssl::Cert[cassandra__aqs1024-b_eqiad_wmnet]
- File[/etc/cassandra-a/jvm11-server.options]
- File[/etc/scap.cfg]
- File[/etc/cassandra-a/user_data_gateway.cql]
- Service[cassandra-b]
- File[/etc/cassandra-a/tls/server.key]
- File[/usr/share/cassandra/lib/jackson-databind-2.4.0.jar]
- Exec[java__cacert_wmf:puppetca.pem]
- File[/etc/ferm/conf.d/10_deployment_ssh]
- File[/etc/ferm/conf.d/10_cassandra-jmx-rmi]
- Exec[install-/srv/storage-7/cassandra-a/data]
- Rsyslog::Conf[udp_json_logback_compat]
- File[/usr/share/cassandra/lib/logstash-logback-encoder.jar]
- Monitoring::Service[cassandra-a-cql]
- Exec[java__cacert_Puppet_Internal_CA]
- Group[deploy-service]
- Sysctl::Conffile[cassandra]
- Java::Cacert[wmf:Wikimedia_Internal_Root_CA]
- Cassandra::Instance[a]
- Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-b]
- File[/etc/cassandra-b/commitlog_archiving.properties]
- File[/etc/ferm/conf.d/10_cassandra-intra-node-ssl]
- Systemd::Service[cassandra-b]
- Systemd::Unit[cassandra-b]
- File[/etc/update-motd.d/05-aqs]
- File[/etc/cassandra-b/tls/server.key]
- File[/etc/cassandra-b/user_device_analytics.cql]
- Scap::Target[cassandra/logstash-logback-encoder]
- Firewall::Service[deployment-ssh]
- File[/etc/cassandra-a/hotspot_compiler]
- Exec[apt_repository_component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia]
- File[/etc/cassandra-a/user_editor_analytics.cql]
- Exec[install-/srv/storage-5/cassandra-b/data]
- Exec[systemd daemon-reload for cassandra-a.service (cassandra-a)]
- Exec[install-/srv/cassandra/cassandra-a/commitlog]
- Cfssl::Cert[cassandra__aqs1024-a_eqiad_wmnet]
- Exec[Generate cert cassandra__aqs1024-a_eqiad_wmnet refresh]
- Sudo::User[scap_deploy-service]
- Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a]
- File[/usr/local/bin/bootstrap-scap-target.sh]
- Interface::Ip[cassandra-b ipv4]
- Class[Git::Lfs]
- Exec[Generate cert cassandra__aqs1024-b_eqiad_wmnet]
- Augeas[ens8f0np0_10.64.156.21/32]
- File[/etc/cassandra-b/tls]
- File[/etc/cassandra-b/user_editor_analytics.cql]
- Exec[install-/srv/storage-3/cassandra-a/data]
- Cfssl::Csr[/etc/cfssl/csr/cassandra__aqs1024-b_eqiad_wmnet.csr]
- File[/etc/cassandra-a]
- Group[scap]
- File[/usr/bin/scap]
- Class[Scap]
- Exec[install-/srv/storage-1/cassandra-b/data]
- File[/usr/local/bin/sstableutil-b]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chained.pem]
- File[/etc/cassandra-b/cassandra.yaml]
- File[/etc/cassandra-b/logback.xml]
- Rsyslog::Conf[udp_localhost_compat]
- File[/etc/cassandra-a/user_device_analytics.cql]
- Class[Cassandra]
- Cassandra::Instance::Monitoring[a]
- Monitoring::Exported_nagios_service[aqs1024 cassandra-b-cql]
- Exec[Generate cert cassandra__aqs1024-b_eqiad_wmnet refresh]
- Package[python3-venv]
- Class[Cassandra::Logging]
- Ferm::Service[cassandra-intra-node]
- Class[Profile::Rsyslog::Udp_localhost_compat]
- Exec[systemd daemon-reload for cassandra-b.service (cassandra-b)]
- Exec[install-/srv/storage-1/cassandra-a/data]
- Monitoring::Exported_nagios_service[aqs1024 cassandra-a-cql]
- Ferm::Service[cassandra-intra-node-ssl]
- Exec[install-/srv/storage-6/cassandra-b/data]
- File[/etc/ssl/localcerts/wmf-java-cacerts]
- Package[git-lfs]
- File[/etc/cassandra-b/credentials]
- File[/etc/cassandra-b/user_commons_impact_analytics.cql]
- Exec[install-/srv/storage-2/cassandra-b/data]
- File[/usr/local/bin/sstable-util-instance]
- File[/etc/cassandra-b/user_image_suggestions.cql]
- File[/usr/local/bin/sstableutil-a]
- Exec[sslcert generate cassandra_keystore_aqs1024-b.p12]
- File[/etc/ssh/userkeys/deploy-service]
- File[/srv/cassandra-b]
- Exec[install-/srv/cassandra/cassandra-b/system]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.csr]
- Ferm::Service[deployment_ssh]
- File[/etc/cassandra-a/jvm-clients.options]
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.pem]
- File[/srv/cassandra-a]
- Augeas[ens8f0np0_10.64.156.18/32]
- User[deploy-service]
- Monitoring::Exported_nagios_service[aqs1024 cassandra-b-ssl]
- Exec[ip addr add 10.64.156.21/32 dev ens8f0np0]
- File[/etc/cassandra-a/tls]
- Exec[install-/srv/storage-4/cassandra-a/data]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- Exec[java__cacert_wmf:Wikimedia_Internal_Root_CA]
- Exec[renew certificate - cassandra__aqs1024-a_eqiad_wmnet]
- Service[cassandra-a]
- File[/etc/cfssl/csr/cassandra__aqs1024-b_eqiad_wmnet.csr]
- File[/etc/cassandra-instances.d/aqs1024-b.yaml]
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.chained.pem]
- File[/etc/cassandra-a/user_commons_impact_analytics.cql]
- Exec[install-/srv/storage-0/cassandra-a/data]
- Exec[install-/srv/storage-2/cassandra-a/data]
- Systemd::Sysuser[scap]
- User[scap]
- Java::Cacert[Puppet_Internal_CA]
- File[/etc/sudoers.d/scap_deploy-service]
- Java::Cacert[Wikimedia_Internal_Root_CA]
- File[/etc/cassandra-b/user_revise_tone_task_generator.cql]
- File[/usr/local/bin/cqlsh-a]
- Exec[install-/srv/storage-4/cassandra-b/data]
- Class[Profile::Rsyslog::Udp_json_logback_compat]
- Class[Profile::Cassandra]
- Class[Scap::User]
- File[/etc/sysctl.d/05-cassandra.conf]
- File[/etc/sysusers.d/scap.conf]
- File[/usr/share/cassandra/lib/jackson-core-2.4.0.jar]
- File[/etc/cassandra-a/user_media_analytics.cql]
- Exec[apt_package_from_component_cassandra]
- Prometheus::Blackbox::Check::Tcp[cassandra-a-cql]
- Class[Java]
- Monitoring::Exported_nagios_service[aqs1024 cassandra-a-ssl]
- Package[cassandra-tools-wmf]
- File[/etc/tmpfiles.d/cassandra.conf]
- Package[prometheus-jmx-exporter]
- File[/etc/cassandra-b]
- Class[Role::Aqs]
- File[/etc/cassandra-b/user_page_analytics.cql]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet-key.pem]
- Package[openjdk-11-jdk]
- File[/etc/cassandra.in.sh]
- File[/etc/cassandra-b/jvm17-server.options]
- File[/etc/init.d/cassandra]
- Monitoring::Service[cassandra-b-cql]
- File[/etc/cassandra-a/commitlog_archiving.properties]
- File[/etc/cassandra-a/cassandra-rackdc.properties]
Resources only in the old catalog
- Node[__node_regexp__aqs1024-7.eqiad.]
- Class[Role::Insetup::Data_persistence_ferm]
- File[/etc/update-motd.d/05-insetup--data-persistence-ferm]
- Motd::Script[insetup::data_persistence_ferm]
- Motd::Message[insetup::data_persistence_ferm]
Resources modified
- File[/etc/cassandra-a/cqlshrc]
- Parameters differences:
--- File[/etc/cassandra-a/cqlshrc].orig +++ File[/etc/cassandra-a/cqlshrc] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-a/cqlshrc.orig +++ /etc/cassandra-a/cqlshrc @@ -0,0 +1,7 @@ +; SPDX-License-Identifier: Apache-2.0 + +[authentication] +credentials = /etc/cassandra-a/credentials + +[ssl] +certfile = /etc/ssl/certs/wmf-ca-certificates.crt
- Package[cassandra/logstash-logback-encoder]
- Parameters differences:
--- Package[cassandra/logstash-logback-encoder].orig +++ Package[cassandra/logstash-logback-encoder] + require => User[deploy-service] + install_options => [{'owner': 'deploy-service'}] + provider => scap3 + ensure => present- File[/lib/systemd/system/cassandra-b.service]
- Parameters differences:
--- File[/lib/systemd/system/cassandra-b.service].orig +++ File[/lib/systemd/system/cassandra-b.service] + group => root + mode => 0444 + ensure => present + notify => Exec[systemd daemon-reload for cassandra-b.service (cassandra-b)] + owner => root
- Content differences:
--- /lib/systemd/system/cassandra-b.service.orig +++ /lib/systemd/system/cassandra-b.service @@ -0,0 +1,24 @@ +[Unit] +Description=distributed storage system for structured data +After=network.target +# On bootstrap / provisioning, don't attempt to start all instances, +# wait instead for the guard file to exist, see also T214166 +ConditionPathExists=/etc/cassandra-b/service-enabled + +[Service] +User=cassandra +PIDFile=/var/run/cassandra/cassandra-b.pid +LimitNOFILE=100000 +LimitMEMLOCK=infinity +Environment="CASSANDRA_INCLUDE=/etc/cassandra.in.sh" +Environment="CASSANDRA_CONF=/etc/cassandra-b" +Environment="CASSANDRA_INSTANCE=aqs1024-b" +Environment="CASSANDRA_LOG_DIR=/var/log/cassandra" +ExecStart=/usr/sbin/cassandra -p /var/run/cassandra/cassandra-b.pid + +# Deinit on shutdown (see: https://phabricator.wikimedia.org/T327954) +ExecStop=-/usr/local/bin/nodetool-b disablethrift +ExecStop=-/usr/local/bin/nodetool-b disablebinary +ExecStop=-/usr/local/bin/nodetool-b disablegossip +ExecStop=-/usr/local/bin/nodetool-b drain +ExecStop=/usr/local/bin/nodetool-b stopdaemon
- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet-key.pem]
- Parameters differences:
--- File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet-key.pem].orig +++ File[/etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet-key.pem] + group => cassandra + mode => 0440 + ensure => file + backup => False + show_diff => False + owner => cassandra
- File[/etc/cassandra-b/cqlshrc]
- Parameters differences:
--- File[/etc/cassandra-b/cqlshrc].orig +++ File[/etc/cassandra-b/cqlshrc] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-b/cqlshrc.orig +++ /etc/cassandra-b/cqlshrc @@ -0,0 +1,7 @@ +; SPDX-License-Identifier: Apache-2.0 + +[authentication] +credentials = /etc/cassandra-b/credentials + +[ssl] +certfile = /etc/ssl/certs/wmf-ca-certificates.crt
- Cfssl::Cert[cassandra__aqs1024-a_eqiad_wmnet]
- Parameters differences:
--- Cfssl::Cert[cassandra__aqs1024-a_eqiad_wmnet].orig +++ Cfssl::Cert[cassandra__aqs1024-a_eqiad_wmnet] + group => cassandra + hosts => ['cassandra', 'aqs1024.eqiad.wmnet'] + notify => Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a] + provide_chain => True + owner => cassandra + renew_seconds => 952200 + names => [] + mode => 0400 + ensure => present + key => {'algo': 'ecdsa', 'size': 256} + common_name => aqs1024-a.eqiad.wmnet + before_services => [] + outdir => /etc/cassandra-a/tls + label => cassandra + auto_renew => True + notify_services => [] + environment => ['GODEBUG=x509ignoreCN=0']- Monitoring::Exported_nagios_service[aqs1024 disk_space]
- Parameters differences:
--- Monitoring::Exported_nagios_service[aqs1024 disk_space].orig +++ Monitoring::Exported_nagios_service[aqs1024 disk_space] @@ - notifications_enabled => 0 + notifications_enabled => 1 @@ - servicegroups => insetup_eqiad + servicegroups => aqs_eqiad
- Class[Profile::Base::Production]
- Parameters differences:
--- Class[Profile::Base::Production].orig +++ Class[Profile::Base::Production] @@ - role_description => Host being setup by Data Persistence SREs + role_description => Analytics Query Service - Cassandra instance
- Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a]
- Parameters differences:
--- Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a].orig +++ Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a] + group => cassandra + public_key => /etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet.chained.pem + outfile => /etc/cassandra-a/tls/server.key + ensure => present + password => test + private_key => /etc/cassandra-a/tls/cassandra__aqs1024-a_eqiad_wmnet-key.pem + owner => cassandra
- File[/usr/local/bin/sstable-util-instance]
- Parameters differences:
--- File[/usr/local/bin/sstable-util-instance].orig +++ File[/usr/local/bin/sstable-util-instance] + group => cassandra + require => Package[cassandra] + mode => 0555 + ensure => present + source => puppet:///modules/cassandra/sstable-util-instance + owner => cassandra
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- Parameters differences:
--- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem].orig +++ File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem] + group => cassandra + mode => 0440 + ensure => file + source => puppet:///modules/profile/pki/intermediates/cassandra-cert.pem + owner => cassandra
- Exec[install-/srv/cassandra/cassandra-a/system]
- Parameters differences:
--- Exec[install-/srv/cassandra/cassandra-a/system].orig +++ Exec[install-/srv/cassandra/cassandra-a/system] + command => install -o cassandra -g cassandra -m 750 -d /srv/cassandra/cassandra-a/system + path => /usr/bin/:/bin/ + creates => /srv/cassandra/cassandra-a/system + before => Systemd::Service[cassandra-a]
- Class[Profile::Base]
- Parameters differences:
--- Class[Profile::Base].orig +++ Class[Profile::Base] @@ - cluster => insetup + cluster => aqs
- Scap::Target[cassandra/logstash-logback-encoder]
- Parameters differences:
--- Scap::Target[cassandra/logstash-logback-encoder].orig +++ Scap::Target[cassandra/logstash-logback-encoder] + additional_services_names => [] + manage_ssh_key => True + sudo_rules => [] + manage_user => True + package_name => cassandra/logstash-logback-encoder + ensure => present + key_name => deploy-service + deploy_user => deploy-service
- File[/usr/local/bin/sstableutil-b]
- Parameters differences:
--- File[/usr/local/bin/sstableutil-b].orig +++ File[/usr/local/bin/sstableutil-b] + group => root + require => File[/usr/local/bin/sstable-util-instance] + ensure => link + target => /usr/local/bin/sstable-util-instance + owner => root
- File[/srv/cassandra-a]
- Parameters differences:
--- File[/srv/cassandra-a].orig +++ File[/srv/cassandra-a] + group => cassandra + require => Package[cassandra] + mode => 0750 + ensure => directory + owner => cassandra
- Exec[create chained cert /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- Parameters differences:
--- Exec[create chained cert /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem].orig +++ Exec[create chained cert /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem] + command => /bin/cat /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.pem /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem > /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chained.pem + unless => /usr/bin/test "$(/bin/cat /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.pem /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem | sha512sum)" == "$(/bin/cat /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chained.pem | sha512sum)" + subscribe => ['Exec[renew certificate - cassandra__aqs1024-b_eqiad_wmnet]', 'File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]', 'File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.pem]']
- Package[jvm-tools]
- Parameters differences:
--- Package[jvm-tools].orig +++ Package[jvm-tools] + provider => apt + ensure => installed
- Exec[install-/srv/storage-7/cassandra-b/data]
- Parameters differences:
--- Exec[install-/srv/storage-7/cassandra-b/data].orig +++ Exec[install-/srv/storage-7/cassandra-b/data] + command => install -o cassandra -g cassandra -m 750 -d /srv/storage-7/cassandra-b/data + path => /usr/bin/:/bin/ + creates => /srv/storage-7/cassandra-b/data + before => Systemd::Service[cassandra-b]
- File[/etc/cassandra-a/logback-tools.xml]
- Parameters differences:
--- File[/etc/cassandra-a/logback-tools.xml].orig +++ File[/etc/cassandra-a/logback-tools.xml] + group => cassandra + ensure => present + mode => 0444 + source => puppet:///modules/cassandra/logback-tools.xml-4.x + links => follow + owner => cassandra
- Class[Profile::Java]
- Parameters differences:
--- Class[Profile::Java].orig +++ Class[Profile::Java] + trust_puppet_ca => True + egd_source => /dev/random + enable_dbg => False + extra_args => {} + hardened_tls => False + java_packages => [{'version': '11', 'variant': 'jdk'}]- Ferm::Service[cassandra-jmx-rmi]
- Parameters differences:
--- Ferm::Service[cassandra-jmx-rmi].orig +++ Ferm::Service[cassandra-jmx-rmi] + prio => 10 + srange => @resolve((aqs1010.eqiad.wmnet aqs1010-a.eqiad.wmnet aqs1010-b.eqiad.wmnet aqs1011.eqiad.wmnet aqs1011-a.eqiad.wmnet aqs1011-b.eqiad.wmnet aqs1012.eqiad.wmnet aqs1012-a.eqiad.wmnet aqs1012-b.eqiad.wmnet aqs1014.eqiad.wmnet aqs1014-a.eqiad.wmnet aqs1014-b.eqiad.wmnet aqs1015.eqiad.wmnet aqs1015-a.eqiad.wmnet aqs1015-b.eqiad.wmnet aqs1016.eqiad.wmnet aqs1016-a.eqiad.wmnet aqs1016-b.eqiad.wmnet aqs1017.eqiad.wmnet aqs1017-a.eqiad.wmnet aqs1017-b.eqiad.wmnet aqs1018.eqiad.wmnet aqs1018-a.eqiad.wmnet aqs1018-b.eqiad.wmnet aqs1019.eqiad.wmnet aqs1019-a.eqiad.wmnet aqs1019-b.eqiad.wmnet aqs1020.eqiad.wmnet aqs1020-a.eqiad.wmnet aqs1020-b.eqiad.wmnet aqs1021.eqiad.wmnet aqs1021-a.eqiad.wmnet aqs1021-b.eqiad.wmnet aqs1022.eqiad.wmnet aqs1022-a.eqiad.wmnet aqs1022-b.eqiad.wmnet aqs1023.eqiad.wmnet aqs1023-a.eqiad.wmnet aqs1023-b.eqiad.wmnet aqs1024.eqiad.wmnet aqs1024-a.eqiad.wmnet aqs1024-b.eqiad.wmnet aqs2001.codfw.wmnet aqs2001-a.codfw.wmnet aqs2001-b.codfw.wmnet aqs2002.codfw.wmnet aqs2002-a.codfw.wmnet aqs2002-b.codfw.wmnet aqs2003.codfw.wmnet aqs2003-a.codfw.wmnet aqs2003-b.codfw.wmnet aqs2004.codfw.wmnet aqs2004-a.codfw.wmnet aqs2004-b.codfw.wmnet aqs2005.codfw.wmnet aqs2005-a.codfw.wmnet aqs2005-b.codfw.wmnet aqs2006.codfw.wmnet aqs2006-a.codfw.wmnet aqs2006-b.codfw.wmnet aqs2007.codfw.wmnet aqs2007-a.codfw.wmnet aqs2007-b.codfw.wmnet aqs2008.codfw.wmnet aqs2008-a.codfw.wmnet aqs2008-b.codfw.wmnet aqs2009.codfw.wmnet aqs2009-a.codfw.wmnet aqs2009-b.codfw.wmnet aqs2010.codfw.wmnet aqs2010-a.codfw.wmnet aqs2010-b.codfw.wmnet aqs2011.codfw.wmnet aqs2011-a.codfw.wmnet aqs2011-b.codfw.wmnet aqs2012.codfw.wmnet aqs2012-a.codfw.wmnet aqs2012-b.codfw.wmnet)) + ensure => present + desc => + notrack => False + port_range => [7199, 7202] + proto => tcp
- File[/usr/local/bin/nodetool-b]
- Parameters differences:
--- File[/usr/local/bin/nodetool-b].orig +++ File[/usr/local/bin/nodetool-b] + group => root + require => File[/usr/local/bin/nodetool-instance] + ensure => link + target => /usr/local/bin/nodetool-instance + owner => root
- Firewall::Service[deployment-ssh]
- Parameters differences:
--- Firewall::Service[deployment-ssh].orig +++ Firewall::Service[deployment-ssh] + desc => + prio => 10 + port => 22 + ensure => present + notrack => False + src_sets => ['DEPLOYMENT_HOSTS'] + proto => tcp
- Augeas[ens8f0np0_10.64.156.21/32]
- Parameters differences:
--- Augeas[ens8f0np0_10.64.156.21/32].orig +++ Augeas[ens8f0np0_10.64.156.21/32] + onlyif => match up[. = 'ip addr add 10.64.156.21/32 dev ens8f0np0'] size == 0 + context => /files/etc/network/interfaces/*[. = 'ens8f0np0' and ./family = 'inet'] + changes => set up[last()+1] 'ip addr add 10.64.156.21/32 dev ens8f0np0' + incl => /etc/network/interfaces + lens => Interfaces.lns
- Class[Cassandra::Logging]
- Parameters differences:
--- Class[Cassandra::Logging].orig +++ Class[Cassandra::Logging] + require => ['Class[Cassandra]']
- Class[Sslcert::Trusted_ca]
- Parameters differences:
--- Class[Sslcert::Trusted_ca].orig +++ Class[Sslcert::Trusted_ca] @@ - include_bundle_jks => False + include_bundle_jks => True
- File[/etc/cassandra-b/user_page_analytics.cql]
- Parameters differences:
--- File[/etc/cassandra-b/user_page_analytics.cql].orig +++ File[/etc/cassandra-b/user_page_analytics.cql] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-b/user_page_analytics.cql.orig +++ /etc/cassandra-b/user_page_analytics.cql @@ -0,0 +1,10 @@ +-- SPDX-License-Identifier: Apache-2.0 + +CREATE ROLE IF NOT EXISTS page_analytics WITH PASSWORD = '' AND LOGIN = true AND SUPERUSER = false; + +GRANT SELECT ON "local_group_default_T_pageviews_per_project_v2".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_lgc_pagecounts_per_project".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_pageviews_per_article_flat".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_bycountry".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_pageviews".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_percountry".data TO 'page_analytics';
- File[/var/lib/scap]
- Parameters differences:
--- File[/var/lib/scap].orig +++ File[/var/lib/scap] + group => 919 + mode => 0755 + ensure => directory + owner => 919
- File[/usr/local/bin/cqlsh-b]
- Parameters differences:
--- File[/usr/local/bin/cqlsh-b].orig +++ File[/usr/local/bin/cqlsh-b] + group => root + require => Package[cassandra-tools-wmf] + ensure => link + target => /usr/bin/cqlsh-instance + owner => root
- File[/etc/cassandra-a/user_page_analytics.cql]
- Parameters differences:
--- File[/etc/cassandra-a/user_page_analytics.cql].orig +++ File[/etc/cassandra-a/user_page_analytics.cql] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-a/user_page_analytics.cql.orig +++ /etc/cassandra-a/user_page_analytics.cql @@ -0,0 +1,10 @@ +-- SPDX-License-Identifier: Apache-2.0 + +CREATE ROLE IF NOT EXISTS page_analytics WITH PASSWORD = '' AND LOGIN = true AND SUPERUSER = false; + +GRANT SELECT ON "local_group_default_T_pageviews_per_project_v2".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_lgc_pagecounts_per_project".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_pageviews_per_article_flat".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_bycountry".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_pageviews".data TO 'page_analytics'; +GRANT SELECT ON "local_group_default_T_top_percountry".data TO 'page_analytics';
- File[/etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list]
- Parameters differences:
--- File[/etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list].orig +++ File[/etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list] + group => root + mode => 0444 + ensure => file + notify => Exec[apt_repository_component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia] + owner => root
- Content differences:
--- /etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list.orig +++ /etc/apt/sources.list.d/component-cassandra41-apt.wikimedia.org-wikimedia-bullseye-wikimedia.list @@ -0,0 +1,2 @@ +deb http://apt.wikimedia.org/wikimedia bullseye-wikimedia component/cassandra41 +deb-src http://apt.wikimedia.org/wikimedia bullseye-wikimedia component/cassandra41
- File[/etc/cassandra-a/logback.xml]
- Parameters differences:
--- File[/etc/cassandra-a/logback.xml].orig +++ File[/etc/cassandra-a/logback.xml] + group => cassandra + mode => 0444 + ensure => present + owner => cassandra
- Content differences:
--- /etc/cassandra-a/logback.xml.orig +++ /etc/cassandra-a/logback.xml @@ -0,0 +1,152 @@ +<!-- +SPDX-License-Identifier: Apache-2.0 +Note: This file is managed by Puppet. + It was taken from the Cassandra Debian package and templatized + here in order to assign configuration. +--> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<!-- +In order to disable debug.log, comment-out the ASYNCDEBUGLOG +appender reference in the root level section below. +--> + +<configuration scan="true" scanPeriod="60 seconds"> + <jmxConfigurator /> + + <!-- No shutdown hook; we run it ourselves in StorageService after shutdown --> + + <!-- SYSTEMLOG rolling file appender to system.log (INFO level) --> + + <appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <file>${cassandra.logdir}/system-a.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${cassandra.logdir}/system-a.log.%i.zip</fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>40</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>50MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern> + </encoder> + </appender> + + <!-- DEBUGLOG rolling file appender to debug.log (all levels) --> + + <appender name="DEBUGLOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${cassandra.logdir}/debug-a.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${cassandra.logdir}/debug-a.log.%i.zip</fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>40</maxIndex> + </rollingPolicy> + + <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>50MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern> + </encoder> + </appender> + + <appender name="UDP" class="net.logstash.logback.appender.LogstashSocketAppender"> + <host>localhost</host> + <port>11514</port> + <customFields>{"program":"cassandra", "cluster":"Analytics Query Service Storage", "instance_name":"a", "HOSTNAME": "aqs1024.eqiad.wmnet"}</customFields> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + </appender> + + <!-- ASYNCLOG assynchronous appender to debug.log (all levels) --> + + <appender name="ASYNCDEBUGLOG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1024</queueSize> + <discardingThreshold>0</discardingThreshold> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUGLOG" /> + </appender> + + <!-- STDOUT console appender to stdout (INFO level) --> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <!-- + stdout will be captured by journald, thus show only >= WARN messages + in systemctl status + --> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <encoder> + <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern> + </encoder> + </appender> + + <!-- Uncomment below configuration (Audit Logging (FileAuditLogger) rolling file appender and Audit Logging + additivity) in order to have the log events flow through separate log file instead of system.log. + Audit Logging (FileAuditLogger) rolling file appender to audit.log --> + <!-- <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${cassandra.logdir}/audit/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> --> + <!-- rollover daily --> + <!-- <fileNamePattern>${cassandra.logdir}/audit/audit.log.%d{yyyy-MM-dd}.%i.zip</fileNamePattern> --> + <!-- each file should be at most 50MB, keep 30 days worth of history, but at most 5GB --> + <!-- <maxFileSize>50MB</maxFileSize> + <maxHistory>30</maxHistory> + <totalSizeCap>5GB</totalSizeCap> + </rollingPolicy> + <encoder> + <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n</pattern> + </encoder> + </appender> --> + + <!-- Audit Logging additivity to redirect audit logging events to audit/audit.log --> + <!-- <logger name="org.apache.cassandra.audit" additivity="false" level="INFO"> + <appender-ref ref="AUDIT"/> + </logger> --> + + <!-- Uncomment bellow and corresponding appender-ref to activate logback metrics + <appender name="LogbackMetrics" class="com.codahale.metrics.logback.InstrumentedAppender" /> + --> + + <root level="INFO"> + <appender-ref ref="SYSTEMLOG" /> + <appender-ref ref="STDOUT" /> + <appender-ref ref="UDP" /> + <appender-ref ref="ASYNCDEBUGLOG" /> <!-- Comment this line to disable debug.log --> + <!-- + <appender-ref ref="LogbackMetrics" /> + --> + </root> + + <logger name="org.apache.cassandra.utils.StatusLogger" additivity="false"> + <appender-ref ref="SYSTEMLOG" /> + <appender-ref ref="STDOUT"/> + </logger> + + <logger name="org.apache.cassandra" level="DEBUG"/> +</configuration>- File[/etc/cassandra-b/commitlog_archiving.properties]
- Parameters differences:
--- File[/etc/cassandra-b/commitlog_archiving.properties].orig +++ File[/etc/cassandra-b/commitlog_archiving.properties] + group => cassandra + ensure => present + mode => 0444 + source => puppet:///modules/cassandra/commitlog_archiving.properties-4.x + links => follow + owner => cassandra
- File[/etc/cassandra-a/hotspot_compiler]
- Parameters differences:
--- File[/etc/cassandra-a/hotspot_compiler].orig +++ File[/etc/cassandra-a/hotspot_compiler] + group => cassandra + ensure => present + mode => 0444 + source => puppet:///modules/cassandra/hotspot_compiler-4.x + links => follow + owner => cassandra
- File[/etc/cassandra-b/user_revise_tone_task_generator.cql]
- Parameters differences:
--- File[/etc/cassandra-b/user_revise_tone_task_generator.cql].orig +++ File[/etc/cassandra-b/user_revise_tone_task_generator.cql] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-b/user_revise_tone_task_generator.cql.orig +++ /etc/cassandra-b/user_revise_tone_task_generator.cql @@ -0,0 +1,7 @@ +-- SPDX-License-Identifier: Apache-2.0 + +CREATE ROLE IF NOT EXISTS revise_tone_task_generator + WITH PASSWORD = 'asdfasdfasdf' AND LOGIN = true AND SUPERUSER = false; + +-- Machine learning cache +GRANT MODIFY ON ml_cache.page_paragraph_tone_scores TO revise_tone_task_generator;
- Prometheus::Blackbox::Check::Tcp[cassandra-a-cql]
- Parameters differences:
--- Prometheus::Blackbox::Check::Tcp[cassandra-a-cql].orig +++ Prometheus::Blackbox::Check::Tcp[cassandra-a-cql] + server_name => cassandra + use_client_auth => False + ip6 => 2620:0:861:124:10:64:156:17 + alert_after => 2m + site => eqiad + certificate_expiry_days => 5 + ip4 => 10.64.156.18 + team => sre + prometheus_instance => ops + client_auth_key => /etc/prometheus/ssl/server.key + port => 9042 + force_tls => True + probe_runbook => https://wikitech.wikimedia.org/wiki/TLS/Runbook#{{ $labels.instance }} + instance_label => aqs1024-a + ip_families => ['ip4'] + severity => critical + timeout => 3s + client_auth_cert => /etc/prometheus/ssl/cert.pem- Monitoring::Exported_nagios_service[aqs1024 cassandra-a-ssl]
- Parameters differences:
--- Monitoring::Exported_nagios_service[aqs1024 cassandra-a-ssl].orig +++ Monitoring::Exported_nagios_service[aqs1024 cassandra-a-ssl] + notes_url => https://wikitech.wikimedia.org/wiki/Cassandra#Installing_and_generating_certificates + host_name => aqs1024 + active_checks_enabled => 1 + check_interval => 1 + check_freshness => 0 + notifications_enabled => 1 + ensure => absent + notification_interval => 0 + max_check_attempts => 3 + contact_groups => admins,team-services + check_period => 24x7 + service_description => cassandra-a SSL 10.64.156.18:7000 + passive_checks_enabled => 1 + check_command => check_ssl_on_host_port!aqs1024-a!10.64.156.18!7000 + notification_options => c,r,f + retry_interval => 1 + servicegroups => aqs_eqiad + notification_period => 24x7 + is_volatile => 0
- Sysctl::Parameters[cassandra]
- Parameters differences:
--- Sysctl::Parameters[cassandra].orig +++ Sysctl::Parameters[cassandra] + values => {'vm.dirty_background_bytes': 25165824, 'vm.max_map_count': 1048575} + priority => 5 + ensure => present- Package[libjemalloc2]
- Parameters differences:
--- Package[libjemalloc2].orig +++ Package[libjemalloc2] + provider => apt + ensure => installed
- Exec[java__cacert_Wikimedia_Internal_Root_CA]
- Parameters differences:
--- Exec[java__cacert_Wikimedia_Internal_Root_CA].orig +++ Exec[java__cacert_Wikimedia_Internal_Root_CA] + before => File[/etc/ssl/localcerts/wmf-java-cacerts] + command => /usr/bin/keytool -import -noprompt -keystore /etc/ssl/localcerts/wmf-java-cacerts -file /usr/share/ca-certificates/wikimedia/Wikimedia_Internal_Root_CA.crt -storepass changeit -alias Wikimedia_Internal_Root_CA + group => root + unless => /usr/bin/keytool -list -keystore /etc/ssl/localcerts/wmf-java-cacerts -noprompt -storepass changeit -alias Wikimedia_Internal_Root_CA + user => root
- File[/etc/cassandra-b/cassandra-env.sh]
- Parameters differences:
--- File[/etc/cassandra-b/cassandra-env.sh].orig +++ File[/etc/cassandra-b/cassandra-env.sh] + group => cassandra + mode => 0444 + ensure => present + owner => cassandra
- Content differences:
--- /etc/cassandra-b/cassandra-env.sh.orig +++ /etc/cassandra-b/cassandra-env.sh @@ -0,0 +1,316 @@ +# SPDX-License-Identifier: Apache-2.0 +# Note: This file is managed by Puppet. +# It was taken from the Cassandra Debian package and is templatized +# here in order to set various options from puppet. + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +calculate_heap_sizes() +{ + case "`uname`" in + Linux) + system_memory_in_mb=`free -m | awk '/:/ {print $2;exit}'` + system_cpu_cores=`egrep -c 'processor([[:space:]]+):.*' /proc/cpuinfo` + ;; + FreeBSD) + system_memory_in_bytes=`sysctl hw.physmem | awk '{print $2}'` + system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024` + system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'` + ;; + SunOS) + system_memory_in_mb=`prtconf | awk '/Memory size:/ {print $3}'` + system_cpu_cores=`psrinfo | wc -l` + ;; + Darwin) + system_memory_in_bytes=`sysctl hw.memsize | awk '{print $2}'` + system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024` + system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'` + ;; + *) + # assume reasonable defaults for e.g. a modern desktop or + # cheap server + system_memory_in_mb="2048" + system_cpu_cores="2" + ;; + esac + + # some systems like the raspberry pi don't report cores, use at least 1 + if [ "$system_cpu_cores" -lt "1" ] + then + system_cpu_cores="1" + fi + + # set max heap size based on the following + # max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB)) + # calculate 1/2 ram and cap to 1024MB + # calculate 1/4 ram and cap to 8192MB + # pick the max + half_system_memory_in_mb=`expr $system_memory_in_mb / 2` + quarter_system_memory_in_mb=`expr $half_system_memory_in_mb / 2` + if [ "$half_system_memory_in_mb" -gt "1024" ] + then + half_system_memory_in_mb="1024" + fi + if [ "$quarter_system_memory_in_mb" -gt "8192" ] + then + quarter_system_memory_in_mb="8192" + fi + if [ "$half_system_memory_in_mb" -gt "$quarter_system_memory_in_mb" ] + then + max_heap_size_in_mb="$half_system_memory_in_mb" + else + max_heap_size_in_mb="$quarter_system_memory_in_mb" + fi + MAX_HEAP_SIZE="${max_heap_size_in_mb}M" + + # Young gen: min(max_sensible_per_modern_cpu_core * num_cores, 1/4 * heap size) + max_sensible_yg_per_core_in_mb="100" + max_sensible_yg_in_mb=`expr $max_sensible_yg_per_core_in_mb "*" $system_cpu_cores` + + desired_yg_in_mb=`expr $max_heap_size_in_mb / 4` + + if [ "$desired_yg_in_mb" -gt "$max_sensible_yg_in_mb" ] + then + HEAP_NEWSIZE="${max_sensible_yg_in_mb}M" + else + HEAP_NEWSIZE="${desired_yg_in_mb}M" + fi +} + +# Sets the path where logback and GC logs are written. +if [ "x$CASSANDRA_LOG_DIR" = "x" ] ; then + CASSANDRA_LOG_DIR="$CASSANDRA_HOME/logs" +fi + +#GC log path has to be defined here because it needs to access CASSANDRA_HOME +if [ $JAVA_VERSION -ge 11 ] ; then + # See description of https://bugs.openjdk.java.net/browse/JDK-8046148 for details about the syntax + # The following is the equivalent to -XX:+PrintGCDetails -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M + echo "$JVM_OPTS" | grep -qe "-[X]log:gc" + if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line + # only add -Xlog:gc if it's not mentioned in jvm-server.options file + mkdir -p ${CASSANDRA_LOG_DIR} + JVM_OPTS="$JVM_OPTS -Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file=${CASSANDRA_LOG_DIR}/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760" + fi +else + # Java 8 + echo "$JVM_OPTS" | grep -qe "-[X]loggc" + if [ "$?" = "1" ] ; then # [X] to prevent ccm from replacing this line + # only add -Xlog:gc if it's not mentioned in jvm-server.options file + mkdir -p ${CASSANDRA_LOG_DIR} + JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_LOG_DIR}/gc.log" + fi +fi + +# Check what parameters were defined on jvm-server.options file to avoid conflicts +echo $JVM_OPTS | grep -q Xmn +DEFINED_XMN=$? +echo $JVM_OPTS | grep -q Xmx +DEFINED_XMX=$? +echo $JVM_OPTS | grep -q Xms +DEFINED_XMS=$? +echo $JVM_OPTS | grep -q UseConcMarkSweepGC +USING_CMS=$? +echo $JVM_OPTS | grep -q +UseG1GC +USING_G1=$? + +# Override these to set the amount of memory to allocate to the JVM at +# start-up. For production use you may wish to adjust this for your +# environment. MAX_HEAP_SIZE is the total amount of memory dedicated +# to the Java heap. HEAP_NEWSIZE refers to the size of the young +# generation. Both MAX_HEAP_SIZE and HEAP_NEWSIZE should be either set +# or not (if you set one, set the other). +# +# The main trade-off for the young generation is that the larger it +# is, the longer GC pause times will be. The shorter it is, the more +# expensive GC will be (usually). +# +# The example HEAP_NEWSIZE assumes a modern 8-core+ machine for decent pause +# times. If in doubt, and if you do not particularly want to tweak, go with +# 100 MB per physical CPU core. + +#MAX_HEAP_SIZE="4G" +#HEAP_NEWSIZE="800M" + +# Set this to control the amount of arenas per-thread in glibc +#export MALLOC_ARENA_MAX=4 + +# only calculate the size if it's not set manually +if [ "x$MAX_HEAP_SIZE" = "x" ] && [ "x$HEAP_NEWSIZE" = "x" -o $USING_G1 -eq 0 ]; then + calculate_heap_sizes +elif [ "x$MAX_HEAP_SIZE" = "x" ] || [ "x$HEAP_NEWSIZE" = "x" -a $USING_G1 -ne 0 ]; then + echo "please set or unset MAX_HEAP_SIZE and HEAP_NEWSIZE in pairs when using CMS GC (see cassandra-env.sh)" + exit 1 +fi + +if [ "x$MALLOC_ARENA_MAX" = "x" ] ; then + export MALLOC_ARENA_MAX=4 +fi + +# We only set -Xms and -Xmx if they were not defined on jvm-server.options file +# If defined, both Xmx and Xms should be defined together. +if [ $DEFINED_XMX -ne 0 ] && [ $DEFINED_XMS -ne 0 ]; then + JVM_OPTS="$JVM_OPTS -Xms${MAX_HEAP_SIZE}" + JVM_OPTS="$JVM_OPTS -Xmx${MAX_HEAP_SIZE}" +elif [ $DEFINED_XMX -ne 0 ] || [ $DEFINED_XMS -ne 0 ]; then + echo "Please set or unset -Xmx and -Xms flags in pairs on jvm-server.options file." + exit 1 +fi + +# We only set -Xmn flag if it was not defined in jvm-server.options file +# and if the CMS GC is being used +# If defined, both Xmn and Xmx should be defined together. +if [ $DEFINED_XMN -eq 0 ] && [ $DEFINED_XMX -ne 0 ]; then + echo "Please set or unset -Xmx and -Xmn flags in pairs on jvm-server.options file." + exit 1 +elif [ $DEFINED_XMN -ne 0 ] && [ $USING_CMS -eq 0 ]; then + JVM_OPTS="$JVM_OPTS -Xmn${HEAP_NEWSIZE}" +fi + +# We fail to start if -Xmn is used with G1 GC is being used +# See comments for -Xmn in jvm-server.options +if [ $DEFINED_XMN -eq 0 ] && [ $USING_G1 -eq 0 ]; then + echo "It is not recommended to set -Xmn with the G1 garbage collector. See comments for -Xmn in jvm-server.options for details." + exit 1 +fi + +if [ "$JVM_ARCH" = "64-Bit" ] && [ $USING_CMS -eq 0 ]; then + JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark" +fi + +# provides hints to the JIT compiler +JVM_OPTS="$JVM_OPTS -XX:CompileCommandFile=$CASSANDRA_CONF/hotspot_compiler" + +# add the jamm javaagent +JVM_OPTS="$JVM_OPTS -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.2.jar" + +CASSANDRA_HEAPDUMP_DIR=/srv/storage-1/cassandra-b +# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR +if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then + JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof" + JVM_OPTS="$JVM_OPTS -XX:ErrorFile=$CASSANDRA_HEAPDUMP_DIR/hs_err_pid%p.log" +fi + +# stop the jvm on OutOfMemoryError as it can result in some data corruption +# uncomment the preferred option +# ExitOnOutOfMemoryError and CrashOnOutOfMemoryError require a JRE greater or equals to 1.7 update 101 or 1.8 update 92 +# For OnOutOfMemoryError we cannot use the JVM_OPTS variables because bash commands split words +# on white spaces without taking quotes into account +# JVM_OPTS="$JVM_OPTS -XX:+ExitOnOutOfMemoryError" +# JVM_OPTS="$JVM_OPTS -XX:+CrashOnOutOfMemoryError" +JVM_ON_OUT_OF_MEMORY_ERROR_OPT="-XX:OnOutOfMemoryError=kill -9 %p" + +# print an heap histogram on OutOfMemoryError +# JVM_OPTS="$JVM_OPTS -Dcassandra.printHeapHistogramOnOutOfMemoryError=true" + +# jmx: metrics and administration interface +# +# add this if you're having trouble connecting: +# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>" +# +# see +# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole +# for more on configuring JMX through firewalls, etc. (Short version: +# get it working with no firewall first.) +# +# Cassandra ships with JMX accessible *only* from localhost. +# To enable remote JMX connections, uncomment lines below +# with authentication and/or ssl enabled. See https://wiki.apache.org/cassandra/JmxSecurity +# +if [ "x$LOCAL_JMX" = "x" ]; then + LOCAL_JMX=yes +fi + +# Specifies the default port over which Cassandra will be available for +# JMX connections. +# For security reasons, you should not expose this port to the internet. Firewall it if needed. +JMX_PORT="7190" + +if [ "$LOCAL_JMX" = "yes" ]; then + JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT" + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" +else + JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port=$JMX_PORT" + # if ssl is enabled the same port cannot be used for both jmx and rmi so either + # pick another value for this property or comment out to use a random port (though see CASSANDRA-7087 for origins) + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT" + + # turn on JMX authentication. See below for further options + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" + + # jmx ssl options + #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true" + #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true" + #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.protocols=<enabled-protocols>" + #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites=<enabled-cipher-suites>" + #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/path/to/keystore" + #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=<keystore-password>" + #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=/path/to/truststore" + #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=<truststore-password>" +fi + +# jmx authentication and authorization options. By default, auth is only +# activated for remote connections but they can also be enabled for local only JMX +## Basic file based authn & authz +JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password" +#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/cassandra/jmxremote.access" +## Custom auth settings which can be used as alternatives to JMX's out of the box auth utilities. +## JAAS login modules can be used for authentication by uncommenting these two properties. +## Cassandra ships with a LoginModule implementation - org.apache.cassandra.auth.CassandraLoginModule - +## which delegates to the IAuthenticator configured in cassandra.yaml. See the sample JAAS configuration +## file cassandra-jaas.config +#JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.login.config=CassandraLogin" +#JVM_OPTS="$JVM_OPTS -Djava.security.auth.login.config=$CASSANDRA_CONF/cassandra-jaas.config" + +## Cassandra also ships with a helper for delegating JMX authz calls to the configured IAuthorizer, +## uncomment this to use it. Requires one of the two authentication options to be enabled +#JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.authorizer=org.apache.cassandra.auth.jmx.AuthorizationProxy" + +# To use mx4j, an HTML interface for JMX, add mx4j-tools.jar to the lib/ +# directory. +# See http://cassandra.apache.org/doc/latest/operating/metrics.html#jmx +# By default mx4j listens on the broadcast_address, port 8081. Uncomment the following lines +# to control its listen address and port. +#MX4J_ADDRESS="127.0.0.1" +#MX4J_PORT="8081" + +# Cassandra uses SIGAR to capture OS metrics CASSANDRA-7838 +# for SIGAR we have to set the java.library.path +# to the location of the native libraries. +JVM_OPTS="$JVM_OPTS -Djava.library.path=$CASSANDRA_HOME/lib/sigar-bin" + +if [ "x$MX4J_ADDRESS" != "x" ]; then + if [ "$(echo "$MX4J_ADDRESS" | grep -c "\-Dmx4jaddress")" = "1" ]; then + # Backward compatible with the older style #13578 + JVM_OPTS="$JVM_OPTS $MX4J_ADDRESS" + else + JVM_OPTS="$JVM_OPTS -Dmx4jaddress=$MX4J_ADDRESS" + fi +fi +if [ "x$MX4J_PORT" != "x" ]; then + if [ "$(echo "$MX4J_PORT" | grep -c "\-Dmx4jport")" = "1" ]; then + # Backward compatible with the older style #13578 + JVM_OPTS="$JVM_OPTS $MX4J_PORT" + else + JVM_OPTS="$JVM_OPTS -Dmx4jport=$MX4J_PORT" + fi +fi + +JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS" + + +JVM_OPTS="$JVM_OPTS -javaagent:/usr/share/java/prometheus/jmx_prometheus_javaagent.jar=10.64.156.21:7800:/etc/cassandra-b/prometheus_jmx_exporter.yaml"- Concat::Fragment[main contacts]
- Exec[java__cacert_Puppet_Internal_CA]
- Parameters differences:
--- Exec[java__cacert_Puppet_Internal_CA].orig +++ Exec[java__cacert_Puppet_Internal_CA] + before => File[/etc/ssl/localcerts/wmf-java-cacerts] + command => /usr/bin/keytool -import -noprompt -keystore /etc/ssl/localcerts/wmf-java-cacerts -file /etc/ssl/certs/Puppet_Internal_CA.pem -storepass changeit -alias Puppet_Internal_CA + group => root + unless => /usr/bin/keytool -list -keystore /etc/ssl/localcerts/wmf-java-cacerts -noprompt -storepass changeit -alias Puppet_Internal_CA + user => root
- Systemd::Unit[cassandra-b]
- Parameters differences:
--- Systemd::Unit[cassandra-b].orig +++ Systemd::Unit[cassandra-b] + override_filename => puppet-override.conf + unit => cassandra-b + restart => False + require => ['Class[Systemd]'] + override => False + ensure => present
- File[/etc/cassandra-a/user_editor_analytics.cql]
- Parameters differences:
--- File[/etc/cassandra-a/user_editor_analytics.cql].orig +++ File[/etc/cassandra-a/user_editor_analytics.cql] + require => Package[cassandra] + group => root + mode => 0400 + owner => root
- Content differences:
--- /etc/cassandra-a/user_editor_analytics.cql.orig +++ /etc/cassandra-a/user_editor_analytics.cql @@ -0,0 +1,5 @@ +-- SPDX-License-Identifier: Apache-2.0 + +CREATE USER IF NOT EXISTS editor_analytics WITH PASSWORD 'yadayadayada'; + +GRANT SELECT ON aqs.config TO 'editor_analytics';
- Ferm::Service[cassandra-intra-node-ssl]
- Parameters differences:
--- Ferm::Service[cassandra-intra-node-ssl].orig +++ Ferm::Service[cassandra-intra-node-ssl] + desc => + prio => 10 + srange => @resolve((aqs1010.eqiad.wmnet aqs1010-a.eqiad.wmnet aqs1010-b.eqiad.wmnet aqs1011.eqiad.wmnet aqs1011-a.eqiad.wmnet aqs1011-b.eqiad.wmnet aqs1012.eqiad.wmnet aqs1012-a.eqiad.wmnet aqs1012-b.eqiad.wmnet aqs1014.eqiad.wmnet aqs1014-a.eqiad.wmnet aqs1014-b.eqiad.wmnet aqs1015.eqiad.wmnet aqs1015-a.eqiad.wmnet aqs1015-b.eqiad.wmnet aqs1016.eqiad.wmnet aqs1016-a.eqiad.wmnet aqs1016-b.eqiad.wmnet aqs1017.eqiad.wmnet aqs1017-a.eqiad.wmnet aqs1017-b.eqiad.wmnet aqs1018.eqiad.wmnet aqs1018-a.eqiad.wmnet aqs1018-b.eqiad.wmnet aqs1019.eqiad.wmnet aqs1019-a.eqiad.wmnet aqs1019-b.eqiad.wmnet aqs1020.eqiad.wmnet aqs1020-a.eqiad.wmnet aqs1020-b.eqiad.wmnet aqs1021.eqiad.wmnet aqs1021-a.eqiad.wmnet aqs1021-b.eqiad.wmnet aqs1022.eqiad.wmnet aqs1022-a.eqiad.wmnet aqs1022-b.eqiad.wmnet aqs1023.eqiad.wmnet aqs1023-a.eqiad.wmnet aqs1023-b.eqiad.wmnet aqs1024.eqiad.wmnet aqs1024-a.eqiad.wmnet aqs1024-b.eqiad.wmnet aqs2001.codfw.wmnet aqs2001-a.codfw.wmnet aqs2001-b.codfw.wmnet aqs2002.codfw.wmnet aqs2002-a.codfw.wmnet aqs2002-b.codfw.wmnet aqs2003.codfw.wmnet aqs2003-a.codfw.wmnet aqs2003-b.codfw.wmnet aqs2004.codfw.wmnet aqs2004-a.codfw.wmnet aqs2004-b.codfw.wmnet aqs2005.codfw.wmnet aqs2005-a.codfw.wmnet aqs2005-b.codfw.wmnet aqs2006.codfw.wmnet aqs2006-a.codfw.wmnet aqs2006-b.codfw.wmnet aqs2007.codfw.wmnet aqs2007-a.codfw.wmnet aqs2007-b.codfw.wmnet aqs2008.codfw.wmnet aqs2008-a.codfw.wmnet aqs2008-b.codfw.wmnet aqs2009.codfw.wmnet aqs2009-a.codfw.wmnet aqs2009-b.codfw.wmnet aqs2010.codfw.wmnet aqs2010-a.codfw.wmnet aqs2010-b.codfw.wmnet aqs2011.codfw.wmnet aqs2011-a.codfw.wmnet aqs2011-b.codfw.wmnet aqs2012.codfw.wmnet aqs2012-a.codfw.wmnet aqs2012-b.codfw.wmnet)) + port => 7001 + ensure => present + notrack => False + proto => tcp
- Package[openjdk-11-jdk]
- Parameters differences:
--- Package[openjdk-11-jdk].orig +++ Package[openjdk-11-jdk] + provider => apt + ensure => installed
- File[/etc/cassandra-b/hotspot_compiler]
- Parameters differences:
--- File[/etc/cassandra-b/hotspot_compiler].orig +++ File[/etc/cassandra-b/hotspot_compiler] + group => cassandra + ensure => present + mode => 0444 + source => puppet:///modules/cassandra/hotspot_compiler-4.x + links => follow + owner => cassandra
- Java::Package[openjdk-jdk-11]
- Parameters differences:
--- Java::Package[openjdk-jdk-11].orig +++ Java::Package[openjdk-jdk-11] + egd_source => /dev/random + package_info => {'version': '11', 'variant': 'jdk'} + hardened_tls => False- Monitoring::Exported_nagios_service[aqs1024 ssh]
- Parameters differences:
--- Monitoring::Exported_nagios_service[aqs1024 ssh].orig +++ Monitoring::Exported_nagios_service[aqs1024 ssh] @@ - notifications_enabled => 0 + notifications_enabled => 1 @@ - servicegroups => insetup_eqiad + servicegroups => aqs_eqiad
- Concat_fragment[main contacts]
- Content differences:
- Concat_fragment[main contacts]
- Monitoring::Exported_nagios_service[aqs1024 ssh]
- Java::Package[openjdk-jdk-11]
- File[/etc/cassandra-b/hotspot_compiler]
- Package[openjdk-11-jdk]
- Content differences:
- File[/etc/cassandra-a/user_editor_analytics.cql]
- Systemd::Unit[cassandra-b]
- Content differences:
- File[/etc/cassandra-b/cassandra-env.sh]
- Exec[java__cacert_Wikimedia_Internal_Root_CA]
- Package[libjemalloc2]
- Sysctl::Parameters[cassandra]
- Monitoring::Exported_nagios_service[aqs1024 cassandra-a-ssl]
- Content differences:
- File[/etc/cassandra-b/user_revise_tone_task_generator.cql]
- File[/etc/cassandra-a/hotspot_compiler]
- Content differences:
- Content differences:
- Content differences:
- File[/etc/cassandra-a/user_page_analytics.cql]
- File[/usr/local/bin/cqlsh-b]
- Content differences:
- File[/etc/cassandra-b/user_page_analytics.cql]
- Class[Sslcert::Trusted_ca]
- Class[Cassandra::Logging]
- Augeas[ens8f0np0_10.64.156.21/32]
- Firewall::Service[deployment-ssh]
- File[/usr/local/bin/nodetool-b]
- Ferm::Service[cassandra-jmx-rmi]
- Class[Profile::Java]
- File[/etc/cassandra-a/logback-tools.xml]
- Exec[install-/srv/storage-7/cassandra-b/data]
- Package[jvm-tools]
- Exec[create chained cert /etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- File[/srv/cassandra-a]
- File[/usr/local/bin/sstableutil-b]
- Scap::Target[cassandra/logstash-logback-encoder]
- Class[Profile::Base]
- Exec[install-/srv/cassandra/cassandra-a/system]
- File[/etc/cassandra-b/tls/cassandra__aqs1024-b_eqiad_wmnet.chain.pem]
- File[/usr/local/bin/sstable-util-instance]
- Sslcert::X509_to_pkcs12[cassandra_keystore_aqs1024-a]
- Class[Profile::Base::Production]
- Monitoring::Exported_nagios_service[aqs1024 disk_space]
- Content differences:
- File[/etc/cassandra-b/cqlshrc]
- Content differences:
- File[/lib/systemd/system/cassandra-b.service]
- Content differences:
- Parameters differences: