From ce30f464890bf922b1b6f471f70fbf10d4fca430 Mon Sep 17 00:00:00 2001 From: Michel van de Wouw Date: Wed, 22 Feb 2017 15:03:04 +0100 Subject: [PATCH 1/5] added resource replace_or_add --- .kitchen.yml | 25 ++++++++++++ .kitchen/default-centos-68.yml | 9 +++++ .kitchen/docker_id_rsa | 27 +++++++++++++ .kitchen/docker_id_rsa.pub | 1 + .kitchen/logs/default-centos-68.log | 23 +++++++++++ .kitchen/logs/kitchen.log | 3 ++ libraries/matchers.rb | 4 ++ metadata.rb | 2 +- recipes/default.rb | 0 resources/replace_line_or_add.rb | 59 +++++++++++++++++++++++++++++ 10 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 .kitchen.yml create mode 100644 .kitchen/default-centos-68.yml create mode 100644 .kitchen/docker_id_rsa create mode 100644 .kitchen/docker_id_rsa.pub create mode 100644 .kitchen/logs/default-centos-68.log create mode 100644 .kitchen/logs/kitchen.log delete mode 100644 recipes/default.rb create mode 100644 resources/replace_line_or_add.rb diff --git a/.kitchen.yml b/.kitchen.yml new file mode 100644 index 0000000..b6b32f0 --- /dev/null +++ b/.kitchen.yml @@ -0,0 +1,25 @@ +--- +driver: + name: docker + +provisioner: + name: chef_zero + # You may wish to disable always updating cookbooks in CI or other testing environments. + # For example: + # always_update_cookbooks: <%= !ENV['CI'] %> + always_update_cookbooks: true + +verifier: + name: inspec + +platforms: + - name: centos-6.8 + +suites: + - name: default + run_list: + - recipe[chef-patch::default] + verifier: + inspec_tests: + - test/smoke/default + attributes: diff --git a/.kitchen/default-centos-68.yml b/.kitchen/default-centos-68.yml new file mode 100644 index 0000000..5a322d0 --- /dev/null +++ b/.kitchen/default-centos-68.yml @@ -0,0 +1,9 @@ +--- +username: kitchen +ssh_key: "/devops/ontwikkeling/chef-patch/.kitchen/docker_id_rsa" +image_id: c69f12f80808 +container_id: c7fef2510a83707964aeb2cb20f912258cecd3e26af48e7adeab66fb7dc8b76e +hostname: localhost +port: 32768 +last_action: converge +last_error: diff --git a/.kitchen/docker_id_rsa b/.kitchen/docker_id_rsa new file mode 100644 index 0000000..de63609 --- /dev/null +++ b/.kitchen/docker_id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA3I89h6bP33AUeu/T/+CqmK0l/PmEGonjeVgGHr2Mw1RMiQ3I +CKglllakpOja/aLaVmU135RfZtoEAvE4IstFsjtwTf+Y4Jqk6vopHn06PYZENzdw +xTiCD/oXQL6zpjcwGp5qlShDxPqSCQjUY4hyQ+hMTdIexZF+wl18tCF6hO+PBdrx +BmlOCs0ZWlzNeduxnmWds0hN2rGe+MXImn9IP4q+BtOMcMbfqwKIZbPHCyhwIEyL +sS7f8fMWEVP9ssvqwPT7lim68iM68Va5k0E/tNOXZQ3Zaq6GEU5CdIvn2UCECsrv +aEo0XLTJqmf/zDgDFIsIMD5zsg29e3W3bzOMJQIDAQABAoIBAQCEqHr/rit1XrpS +vxEp4/132xzwLTtxouH4yCLWNngFvBxUir93xXrmE7LvpUaiK2Nbd4CRu3IuMI8d +Hez/sHd5HhsMLuHKpfjvhAtbVULEYo+BDo17ceN4rJlzzb/MB4GdYQ8GK7OnNHbF +jFQCkbz4by4F2I29kydEzGoHBePlM/q0uMD6c16Ud87+ydAzg/CC+dCKZJvADV6/ +dl9RRcPxsceV48r9tiYpdeuKWocQEcpHlWJQLSS65nEV+6GyNEelc5Xlk6bc6jsp +wgaRiW0V7y+xqFY9bMG5TOs2kAei05E8NmQyeXBBWUidJN5oQUWsgXJd0mXwBNT4 +/PZY1W6BAoGBAP52jrBSWQiUNAdrLPjohaEJUGkVf23zcpuOEf0P0rFiiMXSab9H +Mud16eRyMK8TQAmZ3QwojfGfdRKrpf0WzTjaDvVzaGxJo5SdDjT46jwVl5eYQQBd +v7gRg35VRGG7PMGXJhyvfdRg3YDRPm8/HylJuRC3hJT3jD4iMfm0B5bRAoGBAN3k +QymTPPWy7eRC2033mPvfOMxq1ZpXzSwyY0VyF4u1ky2ayJbfJMjddYFVctkjA0Jr +ePsWfCPmyvxyAGgX/OqZwwyBfJsK8rSn+gKp8+Qgu5r//VYfgCgxwaukLLac0YE4 +8vMBwoZIffJQF8kfuAgCL1oTZNvQ+Mgqh9jDNp0VAoGAJQeZshz5qd7vR1kYXUxx +DcMuOWyQc66mse5Vvc7MqVWec7MwAk7ZIIevNrhLT17sxbjnSvqn1U6QGdxytkbY +LHrHDH7z5jY9IMZOJ/VFGONHgR797pC18pJR4VOFNPerWrylJi1/kSVbdoB8pnG4 +FikNTlp2Z7syZGRTg3PoWtECgYBkMcNmDZdUNuSW0t2mOix5Z1WFcKRdWlJKJ8KN +xDP/oREBYcg74C0DCoUZzpTamaXKIy9w6blKmNeF4JBwcIyC/sWFax7x/6KSktsg +ws9fbqxoFDm33ueGvtj+AVczamJr4GRL+Lp22lsMxL/I0KrP6vSozuMXIyiDcjj/ +Vz7c9QKBgQDgSKkNw3zS0KXqfu+/0+xM7tWmrn+gXAQPx7hYUq2HpChn998d+DkI +fbtRE6f95OaYglN1NzRyKaQLM0nFt5DqN7t3EA2HFzagOMGfGvqg+Y+kjVPiqRyC +Sr2cDfQlZR8e+m6d8in6xIrbWFD0SLgz/trB29Q7U27IJlBx7RPbzw== +-----END RSA PRIVATE KEY----- diff --git a/.kitchen/docker_id_rsa.pub b/.kitchen/docker_id_rsa.pub new file mode 100644 index 0000000..bf74f84 --- /dev/null +++ b/.kitchen/docker_id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcjz2Hps/fcBR679P/4KqYrSX8+YQaieN5WAYevYzDVEyJDcgIqCWWVqSk6Nr9otpWZTXflF9m2gQC8Tgiy0WyO3BN/5jgmqTq+ikefTo9hkQ3N3DFOIIP+hdAvrOmNzAanmqVKEPE+pIJCNRjiHJD6ExN0h7FkX7CXXy0IXqE748F2vEGaU4KzRlaXM1527GeZZ2zSE3asZ74xciaf0g/ir4G04xwxt+rAohls8cLKHAgTIuxLt/x8xYRU/2yy+rA9PuWKbryIzrxVrmTQT+005dlDdlqroYRTkJ0i+fZQIQKyu9oSjRctMmqZ//MOAMUiwgwPnOyDb17dbdvM4wl kitchen_docker_key \ No newline at end of file diff --git a/.kitchen/logs/default-centos-68.log b/.kitchen/logs/default-centos-68.log new file mode 100644 index 0000000..61641ca --- /dev/null +++ b/.kitchen/logs/default-centos-68.log @@ -0,0 +1,23 @@ +I, [2017-02-22T15:01:20.010205 #17052] INFO -- default-centos-68: -----> Converging ... +I, [2017-02-22T15:01:20.010690 #17052] INFO -- default-centos-68: Preparing files for transfer +I, [2017-02-22T15:01:20.010848 #17052] INFO -- default-centos-68: Preparing dna.json +I, [2017-02-22T15:01:20.011124 #17052] INFO -- default-centos-68: Resolving cookbook dependencies with Berkshelf 5.6.0... +I, [2017-02-22T15:01:32.716008 #17052] INFO -- default-centos-68: Removing non-cookbook files before transfer +I, [2017-02-22T15:01:32.717163 #17052] INFO -- default-centos-68: Preparing validation.pem +I, [2017-02-22T15:01:32.717346 #17052] INFO -- default-centos-68: Preparing client.rb +I, [2017-02-22T15:01:32.794442 #17052] INFO -- default-centos-68: -----> Chef Omnibus installation detected (install only if missing) +I, [2017-02-22T15:01:32.813481 #17052] INFO -- default-centos-68: Transferring files to +I, [2017-02-22T15:01:34.808109 #17052] INFO -- default-centos-68: Starting Chef Client, version 12.18.31 +I, [2017-02-22T15:01:36.009386 #17052] INFO -- default-centos-68: resolving cookbooks for run list: ["chef-patch::default"] +I, [2017-02-22T15:01:36.034898 #17052] INFO -- default-centos-68: Synchronizing Cookbooks: +I, [2017-02-22T15:01:36.042872 #17052] INFO -- default-centos-68: - chef-patch (2.2.1) +I, [2017-02-22T15:01:36.043546 #17052] INFO -- default-centos-68: Installing Cookbook Gems: +I, [2017-02-22T15:01:36.050612 #17052] INFO -- default-centos-68: Compiling Cookbooks... +I, [2017-02-22T15:01:36.065256 #17052] INFO -- default-centos-68: Converging 1 resources +I, [2017-02-22T15:01:36.065458 #17052] INFO -- default-centos-68: Recipe: chef-patch::default +I, [2017-02-22T15:01:36.075774 #17052] INFO -- default-centos-68: * replace_line_or_add[5.2.3 Ensure SSH LogLevel is set to INFO (Scored)] action run (up to date) +I, [2017-02-22T15:01:36.112723 #17052] INFO -- default-centos-68: +I, [2017-02-22T15:01:36.112777 #17052] INFO -- default-centos-68: Running handlers: +I, [2017-02-22T15:01:36.112949 #17052] INFO -- default-centos-68: Running handlers complete +I, [2017-02-22T15:01:36.113090 #17052] INFO -- default-centos-68: Chef Client finished, 0/1 resources updated in 01 seconds +I, [2017-02-22T15:01:36.183053 #17052] INFO -- default-centos-68: Finished converging (0m16.17s). diff --git a/.kitchen/logs/kitchen.log b/.kitchen/logs/kitchen.log new file mode 100644 index 0000000..35eef16 --- /dev/null +++ b/.kitchen/logs/kitchen.log @@ -0,0 +1,3 @@ +I, [2017-02-22T15:01:19.112623 #17052] INFO -- Kitchen: -----> Starting Kitchen (v1.15.0) +I, [2017-02-22T15:01:20.010149 #17052] INFO -- Kitchen: -----> Converging ... +I, [2017-02-22T15:01:36.183544 #17052] INFO -- Kitchen: -----> Kitchen is finished. (0m17.07s) diff --git a/libraries/matchers.rb b/libraries/matchers.rb index b6fcb45..d906ebc 100644 --- a/libraries/matchers.rb +++ b/libraries/matchers.rb @@ -14,4 +14,8 @@ def run_replace(resource_name) def run_replace_line(resource_name) ChefSpec::Matchers::ResourceMatcher.new(:replace_line, :run, resource_name) end + + def run_replace_line_or_add(resource_name) + ChefSpec::Matchers::ResourceMatcher.new(:replace_line_or_add, :run, resource_name) + end end diff --git a/metadata.rb b/metadata.rb index 1afd6c9..7f5719c 100644 --- a/metadata.rb +++ b/metadata.rb @@ -1,4 +1,4 @@ -name 'patch' +name 'chef-patch' maintainer 'Jens Segers' maintainer_email '' license 'MIT' diff --git a/recipes/default.rb b/recipes/default.rb deleted file mode 100644 index e69de29..0000000 diff --git a/resources/replace_line_or_add.rb b/resources/replace_line_or_add.rb new file mode 100644 index 0000000..e2adfda --- /dev/null +++ b/resources/replace_line_or_add.rb @@ -0,0 +1,59 @@ +resource_name 'replace_line_or_add' +actions :run +default_action :run + +property :name, :name_property => true, :kind_of => String, :required => true +property :file, :kind_of => String +property :path, :kind_of => String +property :replace, :kind_of => [String, Regexp], :required => true +property :with, :kind_of => String, :required => true + +action :run do + + file_path = file || path || name + + # Check if we got a regex or a string + if replace.is_a?(Regexp) + regex = replace + else + regex = Regexp.new(Regexp.escape(replace)) + end + + # Check if file matches the regex + if ::File.read(file_path) =~ regex + # Calculate file hash before changes + before = Digest::SHA256.file(file_path).hexdigest + + # Do changes + file = Chef::Util::FileEdit.new(file_path) + file.search_file_replace_line(regex, with) + file.write_file + + # Notify file changes + if Digest::SHA256.file(file_path).hexdigest != before + Chef::Log.info "- #{replace}" + Chef::Log.info "+ #{with}" + updated_by_last_action(true) + end + + else + regex = /^#{Regexp.escape(with)}$/ + # Calculate file hash before changes + before = Digest::SHA256.file(file_path).hexdigest + + # Do changes + file = Chef::Util::FileEdit.new(file_path) + file.insert_line_if_no_match(regex, with) + file.write_file + + # Notify file changes + if Digest::SHA256.file(file_path).hexdigest != before + Chef::Log.info "- #{replace}" + Chef::Log.info "+ #{with}" + updated_by_last_action(true) + end + + # Remove backup file + ::File.delete(file_path + ".old") if ::File.exist?(file_path + ".old") + end +end From 8323acc864e8f511147bc3b63411cfbfa051d7d5 Mon Sep 17 00:00:00 2001 From: Michel van de Wouw Date: Wed, 22 Feb 2017 15:03:24 +0100 Subject: [PATCH 2/5] added resource replace_or_add --- .kitchen.yml | 25 ------------------------- .kitchen/default-centos-68.yml | 9 --------- .kitchen/docker_id_rsa | 27 --------------------------- .kitchen/docker_id_rsa.pub | 1 - .kitchen/logs/default-centos-68.log | 23 ----------------------- .kitchen/logs/kitchen.log | 3 --- 6 files changed, 88 deletions(-) delete mode 100644 .kitchen.yml delete mode 100644 .kitchen/default-centos-68.yml delete mode 100644 .kitchen/docker_id_rsa delete mode 100644 .kitchen/docker_id_rsa.pub delete mode 100644 .kitchen/logs/default-centos-68.log delete mode 100644 .kitchen/logs/kitchen.log diff --git a/.kitchen.yml b/.kitchen.yml deleted file mode 100644 index b6b32f0..0000000 --- a/.kitchen.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -driver: - name: docker - -provisioner: - name: chef_zero - # You may wish to disable always updating cookbooks in CI or other testing environments. - # For example: - # always_update_cookbooks: <%= !ENV['CI'] %> - always_update_cookbooks: true - -verifier: - name: inspec - -platforms: - - name: centos-6.8 - -suites: - - name: default - run_list: - - recipe[chef-patch::default] - verifier: - inspec_tests: - - test/smoke/default - attributes: diff --git a/.kitchen/default-centos-68.yml b/.kitchen/default-centos-68.yml deleted file mode 100644 index 5a322d0..0000000 --- a/.kitchen/default-centos-68.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -username: kitchen -ssh_key: "/devops/ontwikkeling/chef-patch/.kitchen/docker_id_rsa" -image_id: c69f12f80808 -container_id: c7fef2510a83707964aeb2cb20f912258cecd3e26af48e7adeab66fb7dc8b76e -hostname: localhost -port: 32768 -last_action: converge -last_error: diff --git a/.kitchen/docker_id_rsa b/.kitchen/docker_id_rsa deleted file mode 100644 index de63609..0000000 --- a/.kitchen/docker_id_rsa +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEA3I89h6bP33AUeu/T/+CqmK0l/PmEGonjeVgGHr2Mw1RMiQ3I -CKglllakpOja/aLaVmU135RfZtoEAvE4IstFsjtwTf+Y4Jqk6vopHn06PYZENzdw -xTiCD/oXQL6zpjcwGp5qlShDxPqSCQjUY4hyQ+hMTdIexZF+wl18tCF6hO+PBdrx -BmlOCs0ZWlzNeduxnmWds0hN2rGe+MXImn9IP4q+BtOMcMbfqwKIZbPHCyhwIEyL -sS7f8fMWEVP9ssvqwPT7lim68iM68Va5k0E/tNOXZQ3Zaq6GEU5CdIvn2UCECsrv -aEo0XLTJqmf/zDgDFIsIMD5zsg29e3W3bzOMJQIDAQABAoIBAQCEqHr/rit1XrpS -vxEp4/132xzwLTtxouH4yCLWNngFvBxUir93xXrmE7LvpUaiK2Nbd4CRu3IuMI8d -Hez/sHd5HhsMLuHKpfjvhAtbVULEYo+BDo17ceN4rJlzzb/MB4GdYQ8GK7OnNHbF -jFQCkbz4by4F2I29kydEzGoHBePlM/q0uMD6c16Ud87+ydAzg/CC+dCKZJvADV6/ -dl9RRcPxsceV48r9tiYpdeuKWocQEcpHlWJQLSS65nEV+6GyNEelc5Xlk6bc6jsp -wgaRiW0V7y+xqFY9bMG5TOs2kAei05E8NmQyeXBBWUidJN5oQUWsgXJd0mXwBNT4 -/PZY1W6BAoGBAP52jrBSWQiUNAdrLPjohaEJUGkVf23zcpuOEf0P0rFiiMXSab9H -Mud16eRyMK8TQAmZ3QwojfGfdRKrpf0WzTjaDvVzaGxJo5SdDjT46jwVl5eYQQBd -v7gRg35VRGG7PMGXJhyvfdRg3YDRPm8/HylJuRC3hJT3jD4iMfm0B5bRAoGBAN3k -QymTPPWy7eRC2033mPvfOMxq1ZpXzSwyY0VyF4u1ky2ayJbfJMjddYFVctkjA0Jr -ePsWfCPmyvxyAGgX/OqZwwyBfJsK8rSn+gKp8+Qgu5r//VYfgCgxwaukLLac0YE4 -8vMBwoZIffJQF8kfuAgCL1oTZNvQ+Mgqh9jDNp0VAoGAJQeZshz5qd7vR1kYXUxx -DcMuOWyQc66mse5Vvc7MqVWec7MwAk7ZIIevNrhLT17sxbjnSvqn1U6QGdxytkbY -LHrHDH7z5jY9IMZOJ/VFGONHgR797pC18pJR4VOFNPerWrylJi1/kSVbdoB8pnG4 -FikNTlp2Z7syZGRTg3PoWtECgYBkMcNmDZdUNuSW0t2mOix5Z1WFcKRdWlJKJ8KN -xDP/oREBYcg74C0DCoUZzpTamaXKIy9w6blKmNeF4JBwcIyC/sWFax7x/6KSktsg -ws9fbqxoFDm33ueGvtj+AVczamJr4GRL+Lp22lsMxL/I0KrP6vSozuMXIyiDcjj/ -Vz7c9QKBgQDgSKkNw3zS0KXqfu+/0+xM7tWmrn+gXAQPx7hYUq2HpChn998d+DkI -fbtRE6f95OaYglN1NzRyKaQLM0nFt5DqN7t3EA2HFzagOMGfGvqg+Y+kjVPiqRyC -Sr2cDfQlZR8e+m6d8in6xIrbWFD0SLgz/trB29Q7U27IJlBx7RPbzw== ------END RSA PRIVATE KEY----- diff --git a/.kitchen/docker_id_rsa.pub b/.kitchen/docker_id_rsa.pub deleted file mode 100644 index bf74f84..0000000 --- a/.kitchen/docker_id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcjz2Hps/fcBR679P/4KqYrSX8+YQaieN5WAYevYzDVEyJDcgIqCWWVqSk6Nr9otpWZTXflF9m2gQC8Tgiy0WyO3BN/5jgmqTq+ikefTo9hkQ3N3DFOIIP+hdAvrOmNzAanmqVKEPE+pIJCNRjiHJD6ExN0h7FkX7CXXy0IXqE748F2vEGaU4KzRlaXM1527GeZZ2zSE3asZ74xciaf0g/ir4G04xwxt+rAohls8cLKHAgTIuxLt/x8xYRU/2yy+rA9PuWKbryIzrxVrmTQT+005dlDdlqroYRTkJ0i+fZQIQKyu9oSjRctMmqZ//MOAMUiwgwPnOyDb17dbdvM4wl kitchen_docker_key \ No newline at end of file diff --git a/.kitchen/logs/default-centos-68.log b/.kitchen/logs/default-centos-68.log deleted file mode 100644 index 61641ca..0000000 --- a/.kitchen/logs/default-centos-68.log +++ /dev/null @@ -1,23 +0,0 @@ -I, [2017-02-22T15:01:20.010205 #17052] INFO -- default-centos-68: -----> Converging ... -I, [2017-02-22T15:01:20.010690 #17052] INFO -- default-centos-68: Preparing files for transfer -I, [2017-02-22T15:01:20.010848 #17052] INFO -- default-centos-68: Preparing dna.json -I, [2017-02-22T15:01:20.011124 #17052] INFO -- default-centos-68: Resolving cookbook dependencies with Berkshelf 5.6.0... -I, [2017-02-22T15:01:32.716008 #17052] INFO -- default-centos-68: Removing non-cookbook files before transfer -I, [2017-02-22T15:01:32.717163 #17052] INFO -- default-centos-68: Preparing validation.pem -I, [2017-02-22T15:01:32.717346 #17052] INFO -- default-centos-68: Preparing client.rb -I, [2017-02-22T15:01:32.794442 #17052] INFO -- default-centos-68: -----> Chef Omnibus installation detected (install only if missing) -I, [2017-02-22T15:01:32.813481 #17052] INFO -- default-centos-68: Transferring files to -I, [2017-02-22T15:01:34.808109 #17052] INFO -- default-centos-68: Starting Chef Client, version 12.18.31 -I, [2017-02-22T15:01:36.009386 #17052] INFO -- default-centos-68: resolving cookbooks for run list: ["chef-patch::default"] -I, [2017-02-22T15:01:36.034898 #17052] INFO -- default-centos-68: Synchronizing Cookbooks: -I, [2017-02-22T15:01:36.042872 #17052] INFO -- default-centos-68: - chef-patch (2.2.1) -I, [2017-02-22T15:01:36.043546 #17052] INFO -- default-centos-68: Installing Cookbook Gems: -I, [2017-02-22T15:01:36.050612 #17052] INFO -- default-centos-68: Compiling Cookbooks... -I, [2017-02-22T15:01:36.065256 #17052] INFO -- default-centos-68: Converging 1 resources -I, [2017-02-22T15:01:36.065458 #17052] INFO -- default-centos-68: Recipe: chef-patch::default -I, [2017-02-22T15:01:36.075774 #17052] INFO -- default-centos-68: * replace_line_or_add[5.2.3 Ensure SSH LogLevel is set to INFO (Scored)] action run (up to date) -I, [2017-02-22T15:01:36.112723 #17052] INFO -- default-centos-68: -I, [2017-02-22T15:01:36.112777 #17052] INFO -- default-centos-68: Running handlers: -I, [2017-02-22T15:01:36.112949 #17052] INFO -- default-centos-68: Running handlers complete -I, [2017-02-22T15:01:36.113090 #17052] INFO -- default-centos-68: Chef Client finished, 0/1 resources updated in 01 seconds -I, [2017-02-22T15:01:36.183053 #17052] INFO -- default-centos-68: Finished converging (0m16.17s). diff --git a/.kitchen/logs/kitchen.log b/.kitchen/logs/kitchen.log deleted file mode 100644 index 35eef16..0000000 --- a/.kitchen/logs/kitchen.log +++ /dev/null @@ -1,3 +0,0 @@ -I, [2017-02-22T15:01:19.112623 #17052] INFO -- Kitchen: -----> Starting Kitchen (v1.15.0) -I, [2017-02-22T15:01:20.010149 #17052] INFO -- Kitchen: -----> Converging ... -I, [2017-02-22T15:01:36.183544 #17052] INFO -- Kitchen: -----> Kitchen is finished. (0m17.07s) From 7e1cbf0c797a7bd4a09770ff24c0dc4ce51cb98b Mon Sep 17 00:00:00 2001 From: Michel van de Wouw Date: Wed, 22 Feb 2017 15:06:23 +0100 Subject: [PATCH 3/5] Updated readme --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 5b741e4..74ef105 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,26 @@ Or with a regex: with "vm.swappiness=60" end + +replace_line_or_add +------------ + +Search the file line by line and match each line with the given regex if matched, replace the whole line with the replace parameter. +If no match is found, add entry like the append_line resource + + replace_line "/etc/sysctl.conf" do + replace "vm.swappiness" + with "vm.swappiness=60" + end + +Or with a regex: + + replace_line "/etc/sysctl.conf" do + replace /.*vm.swappiness.*/ + with "vm.swappiness=60" + end + + append_line ----------- From 2ac7c7636e77369f483e8aed3c8837b38a394cb8 Mon Sep 17 00:00:00 2001 From: Michel van de Wouw Date: Wed, 22 Feb 2017 15:07:45 +0100 Subject: [PATCH 4/5] set cookbookname back to patch --- metadata.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.rb b/metadata.rb index 7f5719c..1afd6c9 100644 --- a/metadata.rb +++ b/metadata.rb @@ -1,4 +1,4 @@ -name 'chef-patch' +name 'patch' maintainer 'Jens Segers' maintainer_email '' license 'MIT' From 5177e7a60c96e0faf2a829ca79e7c1f595fbfe77 Mon Sep 17 00:00:00 2001 From: Michel van de Wouw Date: Wed, 22 Feb 2017 16:01:30 +0100 Subject: [PATCH 5/5] updated readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 74ef105..4a49261 100644 --- a/README.md +++ b/README.md @@ -48,14 +48,14 @@ replace_line_or_add Search the file line by line and match each line with the given regex if matched, replace the whole line with the replace parameter. If no match is found, add entry like the append_line resource - replace_line "/etc/sysctl.conf" do + replace_line_or_add "/etc/sysctl.conf" do replace "vm.swappiness" with "vm.swappiness=60" end Or with a regex: - replace_line "/etc/sysctl.conf" do + replace_line_or_add "/etc/sysctl.conf" do replace /.*vm.swappiness.*/ with "vm.swappiness=60" end