Ansible Git克隆逃脱特殊字符

时间:2019-02-13 19:39:33

标签: git ansible ansible-2.x

我正在尝试使用git模块克隆git repo。我的以下代码在大多数情况下都能正常工作,但是在密码中包含“#”字符时会失败(我怀疑其他字符也可能会失败)。

请帮助我找到一种方法来转义密码中的特殊字符。

---
host: 127.0.0.1
become: true
become_user: root

tasks:
  - name: clone git repo.
    git:
      repo: "{{userName}}:{{password | urlencode}}@x.x.x.x/scm/test.git"
      dest: /tmp/test
      version: master
      force: true

1 个答案:

答案 0 :(得分:0)

尝试在单引号内定义密码,即

public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Add framework services. services.Configure<AppSettings>(Configuration.GetSection("AppSettings")); services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity<Models.ApplicationUser>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddUserManager<Services.ApplicationUserManager>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; }); // Add project services. services.AddSingleton(_ => Configuration); // enables us to inject IConfigurationRoot into service layer class. // other choices: services.AddScoped, services.AddTransient } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); app.UseMvc(routes => { routes.MapRoute( name: "areas", template: "{area:exists}/{controller}/{action=Index}/{id?}" ); }); }

如果可以选择使用SSH克隆,我的建议是切换到SSH