ansible-playbook 使用 `systemd` 模块,自动化管理远程主机上的 systemd 服务,在多个远程主机上同时启动或停止多个服务。(node1,使用条件判断主机) 启动 httpd 服务,并设置开机自启
时间: 2024-02-17 18:59:40 浏览: 118
可以编写以下 Ansible Playbook 来启动 httpd 服务,并设置开机自启:
```yaml
- hosts: node1
become: true
vars:
httpd_service_name: httpd
tasks:
- name: Start httpd service
systemd:
name: "{{ httpd_service_name }}"
state: started
enabled: yes
```
这个 Playbook 首先指定了要在 `node1` 主机上执行操作,并使用 `become` 来获取管理员权限。然后定义了一个名为 `httpd_service_name` 的变量,来指定要启动的服务名。
在任务列表中,我们使用 `systemd` 模块来启动 `httpd` 服务,并设置 `enabled` 参数为 `yes`,以确保该服务在开机时自动启动。
相关问题
ansible-playbook停止某个服务并设置开机不自启
您可以使用Ansible的`systemd`模块来停止某个服务并设置开机不自启。假设您要停止并禁止`httpd`服务,可以编写以下playbook:
```yaml
- name: Stop and disable httpd service
hosts: your_host
become: true
tasks:
- name: Stop httpd service
systemd:
name: httpd
state: stopped
enabled: no
```
在上面的playbook中,我们使用`systemd`模块来停止`httpd`服务,并将其设置为不开机自启。
请注意,在执行此playbook之前,确保您的目标主机已经安装了`systemd`服务管理器。
希望对您有所帮助!
ansible-playbook安装tomcat
要使用Ansible Playbook安装Tomcat,首先需要编写一个适当的Playbook。以下是一个示例:
```yaml
---
- name: Install and configure Tomcat
hosts: your_host # 请将your_host替换为目标主机的名称或IP地址
become: true # 如果需要提升权限,请将其设置为true
tasks:
- name: Install Java
apt:
name: openjdk-8-jdk
state: present # 确保Java已安装
become: true # 如果需要提升权限,请将其设置为true
- name: Download Tomcat binary
get_url:
url: "http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz" # 替换为您所需的Tomcat版本的下载链接
dest: /tmp/tomcat.tar.gz
- name: Extract Tomcat
unarchive:
src: /tmp/tomcat.tar.gz
dest: /opt/tomcat
remote_src: true
- name: Set Tomcat environment variables
lineinfile:
path: /etc/environment
line: 'CATALINA_HOME="/opt/tomcat"'
state: present
- name: Create Tomcat service file
copy:
content: |
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
dest: /etc/systemd/system/tomcat.service
- name: Start Tomcat service
systemd:
name: tomcat
state: started
enabled: true
```
请将上述示例中的`your_host`替换为您要安装Tomcat的目标主机的名称或IP地址。还可以根据需要修改其他任务中的参数,例如Tomcat的下载链接等。
保存以上Playbook为`install_tomcat.yml`文件。然后,使用以下命令运行Ansible Playbook:
```bash
ansible-playbook install_tomcat.yml
```
Ansible将在目标主机上安装Java,下载并解压Tomcat,设置环境变量,创建Tomcat服务文件,最后启动Tomcat服务。完成后,您将能够通过Tomcat的默认端口(8080)访问Tomcat管理界面。
请注意,上述示例假定目标主机是基于Debian/Ubuntu操作系统的。如果您的目标主机是其他操作系统,请相应地修改任务以适应该操作系统的要求。
阅读全文