---
name: "Rex::Commands::Augeas"
section: "3pm"
platform: "linux"
package: "rex"
version: "1.16.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Rex::Commands::Augeas"
---

# Rex::Commands::Augeas(3pm)

An augeas module for (R)?ex

## NAME

Rex::Commands::Augeas - An augeas module for (R)?ex

## DESCRIPTION

This is a simple module to manipulate configuration files with the help of augeas.

## SYNOPSIS

```
 my $k = augeas exists => "/files/etc/hosts/*/ipaddr", "127.0.0.1";
 augeas insert => "/files/etc/hosts",
           label => "01",
           after => "/7",
           ipaddr => "192.168.2.23",
           canonical => "test";
 augeas dump => "/files/etc/hosts";
 augeas modify =>
    "/files/etc/ssh/sshd_config/PermitRootLogin" => "without-password",
    on_change => sub {
       service ssh => "restart";
    };
```

## EXPORTED FUNCTIONS

### augeas($action, @options)

It returns 1 on success and 0 on failure.

Actions:

- modify

  This modifies the keys given in `@options` in `$file`.

  ```
   augeas modify =>
             "/files/etc/hosts/7/ipaddr"    => "127.0.0.2",
             "/files/etc/hosts/7/canonical" => "test01",
             on_change                      => sub { say "I changed!" };
  ```

- remove

  Remove an entry.

  ```
   augeas remove    => "/files/etc/hosts/2",
          on_change => sub { say "I changed!" };
  ```

- insert

  Insert an item into the file. Here, the order of the options is important. If the order is wrong it won't save your changes.

  ```
   augeas insert => "/files/etc/hosts",
             label     => "01",
             after     => "/7",
             ipaddr    => "192.168.2.23",
             alias     => "test02",
             on_change => sub { say "I changed!" };
  ```

- dump

  Dump the contents of a file to STDOUT.

  ```
   augeas dump => "/files/etc/hosts";
  ```

- exists

  Check if an item exists.

  ```
   my $exists = augeas exists => "/files/etc/hosts/*/ipaddr" => "127.0.0.1";
   if($exists) {
       say "127.0.0.1 exists!";
   }
  ```

- get

  Returns the value of the given item.

  ```
   my $val = augeas get => "/files/etc/hosts/1/ipaddr";
  ```
