使用Ansible使文件可执行,然后使Ansible执行它
我目前正在编写一个剧本/角色,在服务器上安装GitLab Runner。以下是我遵循的说明 因此,步骤如下所示: 下载gitlab runnerbinary,放入/usr/local/bin/,然后使用chmod+x来执行它 创建一个gitlab runner用户,为他创建一个个人目录,并决定如果他想运行命令,他将使用/bin/bash 安装服务并指定将使用哪个用户和哪个主目录 五,。运行服务并注册我还没到 所以,这里有一些事情:当我通过Ansible或not登录到远程主机时,我不能直接以root用户身份登录。我的用户“ansible”拥有sudo权限,但问题是他似乎无法运行gitlab runner命令,因为即使我在复制文件时chmod了+x,也找不到该命令 当我以“ansible”身份登录远程服务器时,找不到该命令,但当我尝试使用sudo运行该命令时,它返回我: 致命:请以root用户身份运行该命令 我还不熟悉Ansible,但我得到的是:使用Ansible使文件可执行,然后使Ansible执行它,ansible,gitlab,gitlab-ci-runner,Ansible,Gitlab,Gitlab Ci Runner,我目前正在编写一个剧本/角色,在服务器上安装GitLab Runner。以下是我遵循的说明 因此,步骤如下所示: 下载gitlab runnerbinary,放入/usr/local/bin/,然后使用chmod+x来执行它 创建一个gitlab runner用户,为他创建一个个人目录,并决定如果他想运行命令,他将使用/bin/bash 安装服务并指定将使用哪个用户和哪个主目录 五,。运行服务并注册我还没到 所以,这里有一些事情:当我通过Ansible或not登录到远程主机时,我不能直接以roo
- name: copy gitlab-runner binary from local to remote host(s)
copy:
src: gitlab-runner
dest: /usr/local/bin/gitlab-runner
mode: +x
register: binary
- name: Create a gitlab-runner user
user:
name: 'gitlab-runner'
comment: 'GitLab Runner'
create_home: yes
shell: /bin/bash
- name: Install gitlab-runner
become: yes
become_user: root
shell: gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
args:
executable: /bin/bash
我曾经使用命令服务运行该命令,但它返回了一些奇怪的东西,比如没有这样的文件或目录。现在它返回命令notfound,这稍微好一点
第一个问题:我做得对吗?我的意思是,拷贝本身运行平稳,但我在其中设置mode:+x是正确的,还是应该在拷贝之后添加mode
第二个问题:在我的情况下,正确的方法是什么
提前感谢。使用gitlab runner的路径并使用命令模块,不需要shell
command: /usr/local/bin/gitlab-runner ...
第一个问题:我做得对吗
看看dest:/usr/local/bin/gitlab runner
第二个问题:在我的情况下,正确的方法是什么
你用的那个。你可能需要自己检查一下
- name: Who am I ?
become: yes
become_user: root
command: whoami
register: result
- debug: var=result.stdout
谢谢你的回答!但是,当我切换到root时,我不需要给Ansible root密码吗?这和我用的ansible\u Been\u密码不一样,是吗?输出正在运行-名称:我是谁?它。。。有效,我的意思是,我得到根作为一个反应,让我提醒验证你的反应,但。。。怎样当我每天都需要根密码时,为什么我不需要指定它呢?你在问题中说:我的用户“ansible”拥有sudo权限……哦,我明白了。谢谢