ansible-权限提升(become)

有些任务,使用普通权限无法完成时,可以使用sudo来提升执行的权限。

例如,启动apache:

- name: Ensure the httpd service is running
  service:
    name: httpd
    state: started
  become: yes

此时,默认使用sudo 来执行启动httpd服务,如果sudo需要密码,你需要使用-K参数,提示你需要密码:

$ ansible-playbook ./test.yml -K
SUDO password:

你必须确保使用的账号在sudo 组中: 

$ visudo

root    ALL=(ALL)       ALL
myaccount     ALL=(ALL)       ALL

 

  • become:设置为yes激活权限提升。
  • become_user :设置为具有所需权限的用户 - 您成为的用户,而不是您登录的用户。并不意味着,允许将其设置为主机级别。必须跟become: yes 一起使用。
  • become_method :在播放或任务级别)覆盖ansible.cfg中设置的默认方法,设置为sudo / su / pbrun / pfexec / doas / dzdo / ksu / runas / machinectl
  • become_flags :(在游戏或任务级别)允许使用特定标志来执行任务或角色。一个常见用途是在将shell设置为no login时将用户更改为nobody。在Ansible 2.2中添加。

其他参考:https://docs.ansible.com/ansible/latest/user_guide/become.html

要使用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操作系统的。如果您的目标主机是其他操作系统,请相应地修改任务以适应该操作系统的要求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值