pub struct ConfigureFirewallStep { /* private fields */ }Expand description
Step that configures UFW firewall on a remote host via Ansible
This step configures a restrictive UFW firewall policy while ensuring SSH access is maintained. The SSH port is resolved during template rendering and embedded in the final Ansible playbook. The configuration follows the principle of “allow SSH BEFORE enabling firewall” to prevent lockout.
Implementations§
Source§impl ConfigureFirewallStep
impl ConfigureFirewallStep
Sourcepub fn new(ansible_client: Arc<AnsibleClient>) -> Self
pub fn new(ansible_client: Arc<AnsibleClient>) -> Self
Sourcepub fn execute(
&self,
listener: Option<&dyn CommandProgressListener>,
) -> Result<(), CommandError>
pub fn execute( &self, listener: Option<&dyn CommandProgressListener>, ) -> Result<(), CommandError>
Execute the firewall configuration
§Arguments
listener- Optional progress listener for reporting step-level details. When provided, reports debug information (Ansible commands, working directory) and detail information (firewall policies, SSH access preservation, status).
§Safety
This method is designed to prevent SSH lockout by:
- Resetting UFW to clean state
- Allowing SSH access BEFORE enabling firewall
- Using the correct SSH port from user configuration
The SSH port is resolved during template rendering and embedded in the playbook, so this method executes a playbook with pre-configured values.
§Errors
Returns CommandError if:
- Ansible playbook execution fails
- UFW commands fail
- SSH rules cannot be applied
- Firewall verification fails
Auto Trait Implementations§
impl Freeze for ConfigureFirewallStep
impl RefUnwindSafe for ConfigureFirewallStep
impl Send for ConfigureFirewallStep
impl Sync for ConfigureFirewallStep
impl Unpin for ConfigureFirewallStep
impl UnsafeUnpin for ConfigureFirewallStep
impl UnwindSafe for ConfigureFirewallStep
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request